简介
这篇文章是将mysql的源码编译安装,操作系统redhat 8.2,mysql版本8.0.26。
编译安装
#可以通过挂载系统镜像安装下列依赖软件包
#mysql8.0.26的编译需要gcc-toolset-10,但是redhat8.2的镜像里面只有gcc-tooset-9
#我挂载redhat8.5的镜像安装的gcc-toolset-10
[root@node1 dsq]# yum history
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
10 | install libtirpc-devel | 2023-02-27 18:40 | I, U | 2
9 | install ncurses-devel | 2023-02-27 18:39 | I, U | 5
8 | install openssl-devel | 2023-02-27 18:33 | Install | 12
7 | install openssl | 2023-02-27 18:32 | Upgrade | 2 EE
6 | install gcc-toolset-10 | 2023-02-27 18:30 | Install | 32
5 | install -y cmake | 2023-02-27 18:03 | Install | 5
4 | | 2021-08-25 08:48 | Install | 8
3 | groupinstall Development | 2021-08-19 10:17 | Install | 55
#rpcgen需要网上找软件包
rpm -ivh rpcgen-1.3.1-4.el8.x86_64.rpm
- 编译
#源码存放路径/home/myroot/dsq/mysql-boost-8.0.26.tar.gz
cd /home/myroot/dsq/
tar -zxvf mysql-boost-8.0.26.tar.gz
#创建构建目录 /home/myroot/dsq/bld
mkdir -p /home/myroot/dsq/bld
cd /home/myroot/dsq/bld
#cmake的过程中可能反复报缺少依赖,就是缺少上面那些依赖软件包
#每次安装依赖后都需要执行make clean清理一下,否则可能编译通过了,但是运行程序报错
cmake ../mysql-8.0.26/ -DWITH_BOOST=../mysql-8.0.26/boost/ -DCMAKE_INSTALL_PREFIX=/home/myroot/dsq/mysql -DWITH_DEBUG=1
#编译
make -j4 #通过lscpu命令查看有4个核,选择并发为4
#安装
make install
#配置文件,mysql --help | grep my.cnf 可以看到配置文件读取顺序
[myroot@node1 data]$ cat ~/.my.cnf
[mysqld]
datadir = /home/myroot/dsq/data
general-log = 0
slow_query_log=1
skip_ssl
core-file
#初始化
mkdir -p /home/myroot/dsq/data
mysqld --initialize-insecure #--initialize-insecure就是初始化之后数据库管理员账户root可以免密登录
#启动数据库
/home/myroot/dsq/mysql/support-files/mysql.server start
#连接数据库
mysql -uroot -h127.0.0.1
#查看数据日志
less /home/myroot/dsq/data/node1.log
记录
在cmake的时候,我都是根据报错安装对应的依赖,然后没有每次安装依赖包之后执行make clean和删除MakeCache.txt,导致最后编译虽然成功了,但是连接数据库的时候会报Segmentation fault。