CentOS7 下源码安装MySQL 8.0.11
系统环境:CentOS7, 内核:Linux 3.10.0-862.el7.x86_64
- 如果有旧版本的MySQL,先卸载,用下面命令来查询出系统有哪些相关的MySQL包。
rpm -qa | grep mysql
- 如果上述命令查询出有相关的MySQL包,就卸载
rpm -e 包名
- 卸载MariaDB包
yum remove mariadb-libs.x86_64
- 从MySQL官网下载源码包,并将该文件拷贝到系统中。
https://dev.mysql.com/downloads/mysql/
注意:下载带boost的包:mysql-boost-8.0.11.tar.gz, 大小:74.1M - 安装编译必要的包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
- 创建MySQL用户和组,该用户只用作MySQL的服务,不能用于登录系统
useradd -g mysql mysql -M -s /sbin/nologin
- 检验源压缩包的完整性,并解 压源码包,解压到/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 - 执行cmake
cmake \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql-8.0.11/boost/boost_1_66_0/boost \
-DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all - 在执行cmake的过程中有一个报错,如下图: 意思是缺少相关的openssl开发包。
- 安装缺省的依赖包
yum install openssl-devel.x86_64 openssl-static.x86_64 openssl-perl.x86_64
- 删除CMakeCache.txt或者重命名,这里重命名该文件。
mv CMakeCache.txt CMakeCache.txt.bk
- 再次执行cmake操作,并最终没有报错。
cmake \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql-8.0.11/boost/boost_1_66_0/boost \
-DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all - 执行 make操作, 该过程执行时间比较长,请耐心等待。
make
- 执行make install
make install
- 切换到目录/usr/local/mysql/bin下,初始化 MySQL, 此时数据库root账号的密码为空。
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
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
20.查看默认使用的数据库引擎。
mysql> SHOW ENGINES;
21.查看默认创建的数据库
mysql> show databases;
22.更新数据库root密码(由于之前初始化时候为空密码),在连接到SQL的环境中,分别执行以下命令。
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘NEW_PASSWORD‘;
ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;
flush privileges;
23.最后退出数据连接,用新的密码登录验证设置的新密码有效。
原文地址:http://blog.51cto.com/snowlai/2140451