
MySQL作为流行的开源关系型数据库管理系统,广泛应用于各种Linux发行版,其中CentOS因其稳定性和安全性备受青睐
本文将详细阐述如何在CentOS系统上配置MySQL以实现远程连接,涵盖安装、配置、安全优化等关键环节,确保您的数据库连接既高效又安全
一、准备工作 1.系统环境 -操作系统:CentOS 7/8 -用户权限:需要root或具备sudo权限的用户 2.更新系统 在进行任何安装之前,建议先更新系统软件包,以确保所有组件都是最新的
bash sudo yum update -y 3.防火墙设置 确认防火墙已启用并了解如何管理规则,因为远程访问MySQL需要通过特定的端口(默认3306)
bash sudo systemctl status firewalld 如果防火墙未运行,可以通过以下命令启动: bash sudo systemctl start firewalld sudo systemctl enable firewalld 二、安装MySQL 1.添加MySQL Yum存储库 MySQL官方提供了Yum存储库,便于安装和管理MySQL软件
bash sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y 对于CentOS 8,请使用对应的存储库URL
2.安装MySQL服务器 bash sudo yum install mysql-server -y 3.启动MySQL服务并设置开机自启 bash sudo systemctl start mysqld sudo systemctl enable mysqld 4.获取临时root密码 MySQL安装完成后,系统会生成一个临时root密码,存储在`/var/log/mysqld.log`文件中
bash sudo grep temporary password /var/log/mysqld.log 记下这个密码,稍后首次登录时需要用到
三、MySQL安全配置 1.首次登录并更改root密码 使用临时密码登录MySQL: bash mysql -u root -p 系统会提示输入密码,输入临时密码后按回车
登录后,执行以下命令更改root密码(需符合MySQL密码策略): sql ALTER USER root@localhost IDENTIFIED BY NewStrongPassword!; 2.运行安全脚本 MySQL提供了一个名为`mysql_secure_installation`的脚本,用于执行一系列安全设置,包括删除匿名用户、禁止远程root登录、删除测试数据库等
bash sudo mysql_secure_installation 按照提示操作,通常包括设置root密码(已在上一步完成)、删除匿名用户、禁止远程root登录、删除测试数据库、重新加载权限表等
注意:在禁止远程root登录时,选择No,因为我们稍后会手动配置远程访问
四、配置MySQL允许远程连接 1.修改MySQL配置文件 编辑MySQL主配置文件`/etc/my.cnf`或`/etc/mysql/my.cnf`(取决于安装路径),找到`【mysqld】`部分,确保`bind-address`参数被注释掉或设置为`0.0.0.0`以允许所有IP地址连接
ini 【mysqld】 bind-address = 127.0.0.1 bind-address = 0.0.0.0 保存并退出,然后重启MySQL服务使更改生效
bash sudo systemctl restart mysqld 2.创建远程用户并授权 登录MySQL,创建一个允许从特定IP或任意IP连接的用户
sql CREATE USER remoteuser@% IDENTIFIED BY RemoteUserPassword!; GRANT ALL PRIVILEGES ON- . TO remoteuser@% WITH GRANT OPTION; FLUSH PRIVILEGES; -`remoteuser@%`中的`%`表示允许从任何IP连接
为了安全起见,可以替换为特定的IP地址
-`GRANT ALL PRIVILEGES`授予该用户对所有数据库的所有权限
根据实际需要,可以调整权限范围
3.配置防火墙规则 允许MySQL默认端口(3306)的入站流量
bash sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp sudo firewall-cmd --reload 五、测试远程连接 在另一台计算机上,使用MySQL客户端工具(如MySQL Workbench、命令行客户端等)尝试连接到CentOS上的MySQL服务器
bash mysql -h your-centos-server-ip -u remoteuser -p 输入`remoteuser`的密码后,如果一切正常,您将成功登录到MySQL服务器
六、安全优化建议 1.使用SSL/TLS加密连接 为了确保数据传输的安全性,应配置MySQL使用SSL/TLS加密连接
这涉及生成证书、配置MySQL服务器和客户端使用这些证书
2.限制IP访问 尽管在创建用户时使用了`%`允许任意IP连接,但出于安全考虑,应尽可能限制允许的IP地址范围
sql REVOKE ALL PRIVILEGES, GRANT OPTION FROM remoteuser@%; GRANT ALL PRIVILEGES ON- . TO remoteuser@specific-ip-address IDENTIFIED BY RemoteUserPassword! WITH GRANT OPTION; FLUSH PRIVILEGES; 3.定期审计和监控 定期检查MySQL日志、用户权限和连接尝试,及时发现并响应潜在的安全威胁
4.使用防火墙规则增强安全 除了允许MySQL端口外,还可以配置防火墙规则拒绝来自不可信来源的访问尝试
bash sudo firewall-cmd --permanent --zone=public --add-rich-rule=rule family=
MySQL设置字段为自增标题技巧
CentOS上MySQL远程连接设置指南
MySQL数据库:轻松掌握更改表名或列名的技巧
MySQL数据表还原技巧大揭秘
MySQL审计平台:权限控制全解析
监控MySQL执行语句,优化数据库性能
MySQL查询结果转JSON格式指南
MySQL设置字段为自增标题技巧
MySQL数据库:轻松掌握更改表名或列名的技巧
MySQL数据表还原技巧大揭秘
监控MySQL执行语句,优化数据库性能
MySQL审计平台:权限控制全解析
MySQL查询结果转JSON格式指南
MySQL技巧:轻松获取每组前两条记录
解锁MySQL技能:探寻最佳学习路径,揭秘去哪里学MySQL课程
框架配置详解:MySQL配置文件指南
PPTP连接:利用MySQL实现认证技巧
Win7系统启动MySQL数据库失败解决方案
MySQL设置默认值1067的技巧