在CentOS 7上通过编译源码安装MySQL
1、更新系统并安装依赖:
确保你的CentOS 7系统已更新到最新状态,并安装了必要的编译工具。
sudo yum update -y sudo yum install -y gcc-c++ cmake make
2、创建MySQL用户和组:
为了安全性,最好为MySQL创建一个单独的用户和组。
sudo groupadd mysql sudo useradd -r -g mysql mysql
1、下载MySQL源码:
从MySQL官方网站(https://dev.mysql.com/downloads/mysql/)下载所需的MySQL版本源码包,这里我们下载MySQL 8.0.29版本。
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.29.tar.gz
2、解压源码包:
将下载的源码包解压到指定目录,如/usr/local/src
。
tar -xzvf mysql-8.0.29.tar.gz -C /usr/local/src/ cd /usr/local/src/mysql-8.0.29
1、运行cmake配置编译参数:
使用cmake命令配置编译参数,指定安装路径、字符集等选项。
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DWITH_PLUGIN_DIR="/usr/local/mysql/lib/plugin" .
1、编译MySQL:
使用make命令编译MySQL源码,-j $(nproc)
参数表示使用所有可用的CPU核心进行编译,以加快编译速度。
make -j $(nproc)
2、安装MySQL:
使用sudo make install命令将编译好的MySQL安装到指定目录。
sudo make install
1、初始化MySQL数据库:
更改MySQL安装目录下的所有者为mysql用户,并初始化数据库。
sudo chown -R mysql:mysql /usr/local/mysql sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
2、启动MySQL服务:
使用mysqld_safe命令以安全模式启动MySQL服务,确保MySQL服务在后台运行。
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
3、创建MySQL服务文件(可选):
为了让MySQL服务在系统启动时自动启动,可以创建一个systemd服务文件。
sudo cat > /etc/systemd/system/mysqld.service <<EOF [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF
启用并启动MySQL服务。
sudo systemctl enable mysqld sudo systemctl start mysqld
1、登录MySQL:
使用root用户登录MySQL,初始密码可以通过查看日志文件获取。
sudo /usr/local/mysql/bin/mysql -u root -p
输入密码后,即可进入MySQL命令行界面。
2、修改root密码(可选):
如果需要修改root用户的密码,可以使用以下命令。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;
注意:在实际生产环境中,请务必设置一个强密码,并妥善保管。
3、配置MySQL(可选):
根据需要修改MySQL的配置文件(如my.cnf),调整端口号、绑定地址等参数,配置文件通常位于/etc/my.cnf
或/usr/local/mysql/my.cnf
。
修改完成后,重启MySQL服务使配置生效。
sudo systemctl restart mysqld
步骤 | 命令 | 说明 |
准备工作 | sudo yum update -y sudo yum install -y gcc-c++ cmake make |
更新系统并安装编译工具 |
创建用户和组 | sudo groupadd mysql sudo useradd -r -g mysql mysql |
创建mysql用户和组 |
下载源码 | wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.29.tar.gz |
下载MySQL 8.0.29源码包 |
解压源码 | tar -xzvf mysql-8.0.29.tar.gz -C /usr/local/src/ |
解压源码包到指定目录 |
配置编译参数 | cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ... . |
配置编译参数 |
编译MySQL | make -j $(nproc) |
编译MySQL源码 |
安装MySQL | sudo make install |
安装MySQL到指定目录 |
初始化数据库 | sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql |
初始化MySQL数据库 |
启动服务 | sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & |
启动MySQL服务 |
创建服务文件 | sudo cat > /etc/systemd/system/mysqld.service ... |
创建systemd服务文件 |
启用服务 | sudo systemctl enable mysqld |
启用MySQL服务开机自启 |
启动服务 | sudo systemctl start mysqld |
启动MySQL服务 |
登录MySQL | sudo /usr/local/mysql/bin/mysql -u root -p |
使用root用户登录MySQL |
修改密码 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; |
修改root用户密码 |
配置MySQL | 编辑/etc/my.cnf 或/usr/local/mysql/my.cnf |
修改MySQL配置文件 |
重启服务 | sudo systemctl restart mysqld |
重启MySQL服务使配置生效 |
问题1:在编译安装MySQL的过程中,如果遇到“No package ‘cmake’ found”的错误,应该怎么办?
解答:这是因为系统中没有安装cmake软件包,可以通过执行以下命令来安装cmake:
sudo yum install -y cmake
然后重新运行cmake命令进行配置。
问题2:如何检查MySQL是否已经成功安装并正在运行?
解答:可以通过以下几种方法来检查:
1、使用systemctl命令:执行sudo systemctl status mysqld
,如果看到“active (running)”则表示MySQL服务正在运行。
2、使用ps命令:执行ps aux | grep mysqld
,如果看到有mysqld进程在运行,则表示MySQL已经成功安装并启动。