在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
二、下载与解压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
六、登录与配置MySQL
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已经成功安装并启动。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1638890.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复