如何在CentOS上实现远程访问MySQL数据库?

要在CentOS上远程访问MySQL,首先需要确保MySQL服务正在运行,然后编辑my.cnf文件以允许远程连接。为远程用户创建账户并授予权限。重启MySQL服务使更改生效。

在 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 加密,保护数据传输安全。

七、表格归纳

步骤命令描述
安装 MySQLsudo 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 使配置生效
登录 MySQLsudo 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<

(0)
运维的头像运维
上一篇2024-12-31 05:20
下一篇 2024-12-31 05:26

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注