在CentOS8上搭建LNMP(Linux+Nginx+MySQL+PHP)环境,MySQL是必不可少的组成部分,而对于MySQL的安装方式,网上有很多教程,但大多数都是使用yum或者二进制包,而本篇文章介绍的是源代码编译安装MySQL8.0.29的详细步骤。
一、下载MySQL源代码
首先需要从官网下载MySQL8.0.29的源代码包,下载链接为https://dev.mysql.com/downloads/mysql/。选择Source Code选项卡,然后找到MySQL 8.0.29的源代码包,下载后上传到服务器。
二、安装编译所需的依赖项
在编译安装MySQL之前,需要安装一些必要的依赖项,这里的依赖项包括gcc、gcc-c++、ncurses-devel、cmake和openssl-devel等。可以使用以下命令安装:
yum install -y gcc gcc-c++ ncurses-devel cmake openssl-devel
三、解压源代码包
将MySQL源代码包解压到某个目录下,可以使用以下命令:
# 先安装unzip工具
yum install -y unzip
# 解压MySQL源代码包
unzip mysql-8.0.29.zip -d /usr/local/src/
四、创建编译安装目录
在编译MySQL源代码之前,需要创建安装目录。可以使用以下命令创建:
mkdir /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
五、编译安装MySQL
1. 进入MySQL的源代码目录
cd /usr/local/src/mysql-8.0.29/
2. 创建MySQL编译后的构建目录
mkdir build
cd build
3. 运行cmake来生成Makefile
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DWITH_BOOST=/usr/local/src/boost_1_72_0 \
-DWITH_SSL=system \
-DWITH_INNODB_MEMCACHED=ON \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_PARTITION_STORAGE_ENGINE=ON \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
注释:
-DCMAKE_INSTALL_PREFIX:安装MySQL的目录,默认/usr/local/mysql。-DMYSQL_DATADIR:MySQL的数据目录,默认/usr/local/mysql/data。
-DSYSCONFDIR:配置文件目录,默认/etc。
-DMYSQL_UNIX_ADDR:sock文件存放目录,默认/var/lib/mysql/mysql.sock。
-DWITH_BOOST:使用boost库。
-DWITH_SSL:启用或禁用SSL支持,默认为“system”,表示使用系统的SSL库。
-DWITH_INNODB_MEMCACHED:是否启用InnoDB Memcached插件。
-DMYSQL_TCP_PORT:MySQL的TCP端口,默认为3306。
-DENABLED_LOCAL_INFILE:是否启用本地文件导入,默认启用。
-DWITH_PARTITION_STORAGE_ENGINE:是否启用分区存储引擎。
-DEXTRA_CHARSETS:启用附加字符集,默认启用所有。
-DDEFAULT_CHARSET:默认使用的字符集。
-DDEFAULT_COLLATION:默认使用的排序规则。
4. 运行make命令进行编译
make
5. 运行make install命令进行安装
make install
六、初始化MySQL
MySQL安装完成之后,需要进行初始化。可以使用以下命令进行初始化:
cd /usr/local/mysql/
bin/mysqld --initialize --user=mysql
执行完命令后,会生成一个随机密码,请妥善保管。
七、配置MySQL
修改/etc/my.cnf文件,加入以下配置:
[client]
default-character-set=utf8mb4
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
port=3306
default_storage_engine=InnoDB
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
pid-file=/usr/local/mysql/data/mysql.pid
log_error=/usr/local/mysql/data/mysql.err
log-bin=/usr/local/mysql/data/mysql-bin
binlog-format=ROW
server-id=1
transaction-isolation=READ-COMMITTED
[mysql]
default-character-set=utf8mb4
八、启动MySQL
可以使用以下命令启动MySQL:
# 启动MySQL服务
systemctl start mysqld
# 查看MySQL服务状态
systemctl status mysqld
九、运行安全脚本
运行以下命令来运行MySQL的安全脚本:
/usr/local/mysql/bin/mysql_secure_installation
此脚本将设置root密码、删除匿名用户、禁用root远程登录等操作。
十、总结
本篇文章详细介绍了在CentOS8上使用源代码编译安装MySQL8.0.29的步骤,总体难度较大,需要仔细地按照步骤进行操作。对于新手而言,建议使用yum安装MySQL,因为这种方式比较方便,而且容易操作。但是如果想要对MySQL进行更加深入的了解和掌握,源代码编译安装是必不可少的一项技能。