CentOS7 下源码安装MySQL 8.0.11


系统环境:CentOS7, 内核:Linux 3.10.0-862.el7.x86_64


  1. 如果有旧版本的MySQL,先卸载,用下面命令来查询出系统有哪些相关的MySQL包。

    rpm -qa | grep mysql

  2. 如果上述命令查询出有相关的MySQL包,就卸载

    rpm -e 包名

  3. 卸载MariaDB包

    yum remove mariadb-libs.x86_64

  4. 从MySQL官网下载源码包,并将该文件拷贝到系统中。

    https://dev.mysql.com/downloads/mysql/
    注意:下载带boost的包:mysql-boost-8.0.11.tar.gz, 大小:74.1M
    CentOS7 下源码安装MySQL 8.0.11

  5. 安装编译必要的包

    yum -y install make gcc-c++ cmake bison-devel ncurses-devel

  6. 创建MySQL用户和组,该用户只用作MySQL的服务,不能用于登录系统

    groupadd mysql
    useradd -g mysql mysql -M -s /sbin/nologin

7.检验源压缩包的完整性,并解 压源码包,解压到/usr/local/mysql-8.0.11

md5sum mysql-boost-8.0.11.tar.gz
tar -zxvf mysql-boost-8.0.11.tar.gz -C /usr/local

8.执行cmake

cmake \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all

9.在执行cmake的过程中有一个报错,如下图: 意思是缺少相关的openssl开发包。
CentOS7 下源码安装MySQL 8.0.11
10.安装缺省的依赖包

yum install openssl-devel.x86_64

11.删除CMakeCache.txt或者重命名,这里重命名该文件。

mv CMakeCache.txt CMakeCache.txt.bk

12.再次执行cmake操作,并最终没有报错

cmake \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all

13.执行 make操作, 该过程执行时间比较长,请耐心等待。

make

14.执行make install

make install

15.切换到目录/usr/local/mysql/bin下,初始化 MySQL, 此时数据库root账号的密码为空。

./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

CentOS7 下源码安装MySQL 8.0.11

16.配置启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

17.启动 mysqld

service mysqld start
输出结果:Starting MySQL SUCCESS!

18.验证mysql服务已经启动和相关进程

ps -ef | grep mysqld

19.在数据库本机登录数据库

./mysql -uroot -p

CentOS7 下源码安装MySQL 8.0.11

20.查看默认使用的数据库引擎。

mysql> SHOW ENGINES;

CentOS7 下源码安装MySQL 8.0.11

21.查看默认创建的数据库

mysql> show databases;

CentOS7 下源码安装MySQL 8.0.11

22.更新数据库root密码(由于之前初始化时候为空密码),在连接到SQL的环境中,分别执行以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

23.最后退出数据连接,用新的密码登录验证设置的新密码有效。