MySQL技术内幕1:内容介绍+MySQL编译使用介绍
文章目录
- 1.整体内容介绍
- 2.下载编译流程
- 2.1 安装编译工具和依赖库
- 2.2 下载编译
- 3.配置MySQL
- 3.1 数据库初始化
- 3.2 编辑配置文件
- 3.3 启动停止MySQL
- 3.4 登录并修改密码
1.整体内容介绍
MySQL技术系列文章将从MySQL下载编译,使用到MySQL各组件使用原理+源码分析,采用自底向上,从整体到局部的方式来进行详细分析(从MySQL系统概述到存储管理,再到索引,查询编译,事务,并发,安全,复制和分布式相关内容)。本篇为第一篇,也就是环境准备篇,以此环境为基础来进行后续的介绍。
2.下载编译流程
现在应用比较多的新版本是8.x.x,所以采用8.0.33版本来进行源码的分析。
2.1 安装编译工具和依赖库
sudo apt update
sudo apt install -y cmake gcc g++ make libncurses-dev libssl-dev libboost-all-dev libbz2-dev pkg-config libldap2-dev libsasl2-dev
2.2 下载编译
cmake .. \
-DCMAKE_INSTALL_PREFIX=/home/xxx/openSource/DataBase/mysql/install \
-DMYSQL_DATADIR=/home/xxx/openSource/DataBase/mysql/data \
-DWITH_BOOST=../boost \
-DSYSCONFDIR=/home/xxx/openSource/DataBase/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_DEBUG=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DWITH_SSL=system 参数详解:
-DCMAKE_INSTALL_PREFIX //安装目录
-DSYSCONFDIR //配置文件目录(默认可以不安装配置文件)
-DMYSQL_DATADIR //数据存储目录
-DWITH_BOOST //boost目录
-DINSTALL_MANDIR //帮助文档
-DMYSQL_TCP_PORT //默认端口号
-DMYSQL_UNIX_ADDR //sock文件位置
-DDEFAULT_CHARSET //默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS //扩展的字符集支持所有的
-DDEFAULT_COLLATION //默认字符集为utf8;默认校对规则为utf8_general_ci
-DWITH_READLINE //上下翻历史命令
-DWITH_SSL //ssl路径,可以使用系统的system,也可以使用自己编译的指定路径下的
-DWITH_EMBEDDED_SERVER //编译并启用嵌入式MySQL服务器
-DENABLED_LOCAL_INFILE //从本地导入数据
-DWITH_INNOBASE_STORAGE_ENGINE //编译InnoDB存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE //编译ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE //编译BLACKHOLE引擎
-DWITH_DEBUG //debug版本
#编译安装
make -j8 && make install
过程中可能出现的问题:
1)CMake Error at CMakeLists.txt:1374 (MESSAGE):Please install the patchelf(1) utility:直接注释掉cmakefile中对应的检查即可。
2)undefined reference to `EVP_aes_128_cfb1’:OpenSSL 库版本不兼容或配置不正确。
# 下载 OpenSSL 源码
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w# 配置并编译
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
sudo make install# 更新库路径
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig# 验证安装
/usr/local/openssl/bin/openssl version
#更新cmake参数,清理后编译
-DWITH_SSL=/usr/local/openssl
3.配置MySQL
3.1 数据库初始化
cd ~/openSource/DataBase/mysql/install # 指定的安装路径
sudo bin/mysqld --initialize --user=xxx --basedir=/home/xxx/openSource/DataBase/mysql/install --datadir=/home/xxx/openSource/DataBase/mysql/data/
此时会生成临时密码,后面可以在日志中查找,也可以在这记录一下。
3.2 编辑配置文件
指定的配置文件路径下去编辑:vim
/home/xxx/openSource/DataBase/mysql/etc/my.cnf
[mysqld]
basedir=/home/xxxx/openSource/DataBase/mysql/install
datadir=/home/xxxx/openSource/DataBase/mysql/data
socket=/tmp/mysql.sock
user=mysql[client]
socket=/tmp/mysql.sock
3.3 启动停止MySQL
/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server start
/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server stop
3.4 登录并修改密码
./bin/mysql -u root -p
输入临时密码后登录成功
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的新密码’;
以上就完成了MySQL的编译安装和配置,可以使用其进行调试了。
原文链接