在 CentOS 系统中,MySQL 默认只允许本地客户端连接,为了实现远程访问,需要进行一系列配置和修改,以下是详细的步骤:
一、安装与启动 MySQL
安装 MySQL
如果尚未安装 MySQL,可以使用以下命令进行安装:
sudo dnf install mysql80-server
启动 MySQL 服务
确保 MySQL 服务已启动:
sudo systemctl start mysqld
设置 MySQL 在开机时自动启动:
sudo systemctl enable mysqld
二、修改 MySQL 配置文件
编辑 my.cnf 文件
使用 vim 或 nano 等编辑器打开 my.cnf 文件:
sudo vim /etc/my.cnf
在 [mysqld] 部分添加或修改以下行:
bind-address = 0.0.0.0
这将允许 MySQL 监听所有 IP 地址上的连接请求。
重启 MySQL 服务
使配置生效,重启 MySQL 服务:
sudo systemctl restart mysqld
三、修改 MySQL 用户权限
登录 MySQL
以 root 用户身份登录 MySQL:
sudo mysql -u root -p
输入初始密码后,由于首次安装可能会有默认的临时密码,可以通过以下命令查找:
SELECT user, host, password FROM mysql.user WHERE User='root';
重设密码并允许远程访问:
-重置 root 用户密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; -允许 root 用户从任意主机访问 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION; -刷新权限 FLUSH PRIVILEGES;
请将your_new_password
替换为您的新密码。
四、配置防火墙
查看防火墙状态
检查防火墙是否开启:
firewall-cmd --state
如果没有开启,则开启防火墙:
systemctl start firewalld.service
防火墙的关闭和禁用命令如下:
关闭防火墙:
systemctl stop firewalld.service
禁用防火墙:
systemctl disable firewalld.service
添加 3306 端口监听
添加一个名为 mysql 的新的防火墙服务,并启用防火墙规则:
firewall-cmd --permanent --zone=public --add-service=mysql firewall-cmd --reload
或者手动添加端口:
firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
五、测试远程访问
使用远程主机连接 MySQL
在另一台计算机上,尝试使用 MySQL 客户端连接你的 CentOS 服务器:
mysql -h your_centos_server_ip -u root -p
输入密码后,如果能够成功登录,说明远程访问配置成功。
六、安全建议
1、使用强密码:确保你的 MySQL root 密码足够复杂。
2、限制访问源:不要将数据库完全暴露于互联网,可以设置 IP 白名单。
3、启用 SSL:考虑启用 SSL 加密,保护数据传输安全。
七、表格归纳
步骤 | 命令 | 描述 |
安装 MySQL | sudo dnf install mysql80-server | 安装 MySQL 8.0 |
启动服务 | sudo systemctl start mysqld | 确保 MySQL 服务已启动 |
修改配置文件 | sudo vim /etc/my.cnf | 将 bind-address 设置为 0.0.0.0 |
重启服务 | sudo systemctl restart mysqld | 使配置生效 |
登录 MySQL | sudo mysql -u root -p | 以 root 用户身份登录 MySQL |
修改用户权限 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION; FLUSH PRIVILEGES; | 重置密码并允许远程访问 |
配置防火墙 | firewall-cmd --permanent --zone=public --add-service=mysql firewall-cmd --reload | 添加 3306 端口监听 |
测试远程访问 | mysql -h your_centos_server_ip -u root -p | 在远程主机上测试连接 |
八、相关问题与解答
问题1:如何更改MySQL root用户的密码?
答案1:要更改MySQL root用户的密码,可以使用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
然后执行以下命令使更改生效:
FLUSH PRIVILEGES;
问题2:如何在CentOS中卸载MySQL?
答案2:要在CentOS中卸载MySQL,可以使用以下命令:
sudo dnf remove mysql-server
以上就是关于“centos远程访问mysql”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/42401.html<