源码部署mysql8.0.40
操作系统 | MySQL版本 |
---|---|
RHEL7.9 | 8.0.40 |
(1)安装编译mysql所需软件包
#安装mysql8的依赖软件
[root@master ~]# yum install -y git bison openssl-devel ncurses-devel -y#安装cmake3
[root@master ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
[root@master ~]# yum install cmake3 -y
#安装gcc11,找到相关的rpm包上传至linux后解压并安装
[root@master ~]# ls gcc-11.zip
gcc-11.zip
[root@master ~]# unzip gcc-11.zip
[root@master ~]# ll gcc-11
total 55984
-rw-r--r-- 1 root root 6607544 Jul 19 11:56 devtoolset-11-binutils-2.36.1-1.el7.2.x86_64.rpm
-rw-r--r-- 1 root root 33872612 Jul 19 11:56 devtoolset-11-gcc-11.2.1-9.el7.x86_64.rpm
-rw-r--r-- 1 root root 13074320 Jul 19 11:56 devtoolset-11-gcc-c++-11.2.1-9.el7.x86_64.rpm
-rw-r--r-- 1 root root 3739724 Jul 19 11:56 devtoolset-11-libstdc++-devel-11.2.1-9.el7.x86_64.rpm
-rw-r--r-- 1 root root 20580 Jul 19 11:56 devtoolset-11-runtime-11.1-2.el7.x86_64.rpm[root@master ~]# cd gcc-11/
[root@master gcc-11]# yum install ./*.rpm[root@master ~]# source /opt/rh/devtoolset-11/enable
[root@master gcc-11]# cat /opt/rh/devtoolset-11/enable >> ~/.bash_profile
[root@master gcc-11]# gcc -v
gcc version 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC)
(2)编译安装mysql8.0.40
上传mysql源码包至linux并解压
[root@master opt]# ls mysql-boost-8.0.40.tar.gz
mysql-boost-8.0.40.tar.gz
[root@master opt]# tar xf mysql-boost-8.0.40.tar.gz
[root@master opt]# cd mysql-8.0.40/
[root@master mysql-8.0.40]# mkdir bld
[root@master mysql-8.0.40]# cd bld
[root@master bld]# cmake3 .. \
-DWITH_BOOST=../boost/boost_1_77_0/ \ #指定MySQL 源码编译所依赖的 Boost 库的路径
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径
-DMYSQL_DATADIR=/data/mysql \ #指定数据目录
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ #指定套接字文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #指定启用INNODB存储引擎,默认用myisam
-DWITH_EXTRA_CHARSETS=all \ #扩展字符集
-DDEFAULT_CHARSET=utf8mb4 \ #指定默认字符集
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \ #指定默认校验字符集
-DWITH_SSL=system \ #指定MySQL使用系统已安装的 SSL 库
-DWITH_BOOST=bundled \ #指定使用 MySQL 源码包中内置的Boost库
[root@master bld]# make -j 2 ########该过程很久,请耐心等待,利用多核 CPU 资源同时运行 2 个编译进程
[root@master bld]# make install
#生成启动脚本
[root@master ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#修改环境变量
[root@master ~]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@master ~]# source /etc/profile#建立数据库程序运行用户
[root@master ~]# useradd -M -s /sbin/nologin mysql#建立数据库数据目录
[root@master ~]# mkdir -p /data/mysql/
[root@master ~]# chown mysql.mysql -R /data/#创建配置文件
[root@master ~]# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql #指定数据目录
socket=/data/mysql/mysql.sock #指定套接字
server_id=200
log-bin=binlog
#数据库初始化建立mysql基本数据,注意在输出中查看临时密码
[root@master ~]# mysqld --initialize --user=mysql
#启动数据库
[root@master ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/master.err'.
. SUCCESS!#修改数据库密码,新密码为123
[root@master ~]# mysqladmin -uroot -p password '123'
#使用新密码登录数据库
[root@master ~]# mysql -uroot -p123
mysql>
- 注意:缺少的依赖可以从https://pkgs.org/获取