在 CentOS 环境下配置 MySQL 8 以支持远程访问,涉及到多个步骤,包括调整配置文件、修改用户权限以及防火墙设置。下面是一个详细的步骤指南:
一、安装 MySQL 8
如果尚未安装 MySQL 8,可以使用以下命令进行安装:
sudo dnf install mysql80-server
二、启动 MySQL 服务
确保 MySQL 服务已启动:
sudo systemctl start mysqld
设置 MySQL 在开机时自动启动:
sudo systemctl enable mysqld
三、修改 MySQL 配置文件
编辑 MySQL 的配置文件 /etc/my.cnf
,在 [mysqld]
部分添加或修改以下行:
bind-address = 0.0.0.0
这将允许 MySQL 监听所有 IP 地址上的连接请求。
四、修改 MySQL 用户权限
登录 MySQL:
sudo mysql -u root -p
输入初始密码后,由于首次安装可能会有默认的临时密码,可以通过以下命令查找:
SELECT user, host, password FROM mysql.user WHERE User='root';
接着,重设密码并允许远程访问:
-- 重置 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
-- 允许 root 用户从任意主机访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
记得将 'your_new_password'
替换为你的新密码。
五、配置防火墙
允许外部访问 MySQL 的 3306 端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
六、测试远程访问
在另一台机器上,尝试使用 MySQL 客户端连接你的 CentOS 服务器:
mysql -h your_centos_server_ip -u root -p
输入密码后,如果能够成功登录,说明远程访问配置成功。
七、安全建议
- 使用强密码:确保你的 MySQL root 密码足够复杂。
- 限制访问源:不要将数据库完全暴露于互联网,可以设置 IP 白名单。
- 启用 SSL:考虑启用 SSL 加密,保护数据传输安全。
结语
通过以上步骤,你可以在 CentOS 系统上成功配置 MySQL 8 的远程访问功能。记得在配置过程中关注数据库的安全性,采取适当的措施保护数据安全。如果有任何疑问或遇到问题,欢迎随时提问。