Linux CentOS 安装 MySQL 8
一、离线安装 MySQL
1.1 检查是否已安装 MySQL
rpm -qa | grep mysql
如果已经安装了 MySQL,您可以通过以下步骤卸载它。
1.2 卸载已安装的 MySQL
rpm -ev mysql80-community-release-el7-7.noarch
rpm -ev mysql-community-client-plugins-8.0.22-1.ky3.kb1.x86_64
1.3 下载 RPM 包:
下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
CentOS 是 RedHat 的一个分发版本,功能与 RedHat 完全一致
注:请确保版本对应,以下是版本为 8.0.32 的示例包:
mysql-community-client-8.0.32-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
mysql-community-common-8.0.32-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
mysql-community-libs-8.0.32-1.el7.x86_64.rpm
mysql-community-server-8.0.32-1.el7.x86_64.rpm
1.4 按依赖顺序安装
将下载好的 RPM 包拷贝至服务器,然后按照以下顺序安装,或按照提示安装:
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm
1.5 服务相关命令
重启 MySQL 服务
systemctl start mysqld.service
检查 MySQL 服务运行状态
systemctl status mysqld.service
停止 MySQL 服务
systemctl stop mysqld.service
重启 MySQL 服务
systemctl restart mysqld.service
二、MySQL 修改密码及登录
2.1 获取初始密码
grep 'temporary password' /var/log/mysqld.log
2.2 登录 MySQL
# -h 指定 IP 地址
mysql -u root -p
输入上述命令获取的密码。
2.3 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWD';
2.4 其他:添加新用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
三、设置 MySQL 允许远程登录
3.1 使用 SQL 命令修改
USE mysql;
SELECT host, user FROM user;
UPDATE user SET host = '%' WHERE user = 'root';
3.2 重启服务生效
systemctl restart mysqld.service
注意事项
本教程适用于测试环境,出于安全性考虑,在生产运行环境下应遵循以下建议:
- 不应该给 root 用户开启远程登录权限。
- 在为用户授权时,应根据用户的需求进行权限细分,例如限定登录的 IP 地址,仅授予必要的权限,如 SELECT、UPDATE 等。
四、其他:开启关闭服务器防火墙
4.1 查看服务器防火墙状态
# 如果显示 "running",则表示防火墙已开启
firewall-cmd --state
4.2 关闭防火墙
systemctl stop firewalld.service
4.3 开启防火墙
systemctl start firewalld.service
4.4 关闭开机自启动
systemctl disable firewalld.service
4.5 开启开机自启动
systemctl enable firewalld.service