Centos中配置MySQL可远程登陆详细图文教程

时间:2024-05-21 07:33:21

      当我们在Centos中装完Mysql,想要在另一台主机上远程登陆Centos系统上面的Mysql时,发现登陆失败,这是由于考虑到安全性问题,在Centos刚安装好的Mysql默认是不支持远程登陆的。除了配置Mysql外,我们还得确保Centos服务器的防火墙开放了访问Mysql数据库的端口(默认为3306)。

 

1.配置MySQL允许远程登陆

首先登陆mysql数据库,选择mysql,然后设置允许root用户在任何地方进行远程登录,并具有所有库任何操作权限。步骤如下:

a.登陆mysql数据库:

用#mysql -u root -p 命令登陆,然后根据提示输入密码:
Centos中配置MySQL可远程登陆详细图文教程

注意:若是刚安装好的mysql,直接输入#mysql 也可登陆。

b.选择mysql:
Centos中配置MySQL可远程登陆详细图文教程

c.设置允许root用户在任何地方进行远程登录,并具有所有库任何操作权限:

首先输入以下命令,设置远程登陆root用户时的密码为123,并取得所有权: 

mysql>grant all privileges on *.* to 'root'@'%' identified by '123' with grant option; 

然后重载授权表,使配置马上生效:

mysql>flush privileges; 

如下:
Centos中配置MySQL可远程登陆详细图文教程

到此,mysql配置允许远程登陆就完成了。

 注意:本地登陆root用户的密码和远程登陆root用户的密码可以不一致,上面设置远程登陆root用户的权限,只是在user表增加了一条记录,对root用户的本地登陆无影响,但是,若是设置了远程登陆root权限之后修改了root用户所有记录的密码,那么,远程登陆root用户那条记录的密码也将被修改,下次远程登陆的时候就要用新设置的密码了。

 

2.配置防火墙开放端口

  Mysql数据库的端口默认是3306,而防火墙默认是没有开放3306端口的,如果之前开放过,并远程访问正常,实际上这一步就可以忽略了。

我们检验下,用命令# service iptables status检查防火墙端口状态:
Centos中配置MySQL可远程登陆详细图文教程

发现防火墙确实木有开放3306端口,接下来当然就需要配置防火墙让其开放3306端口。步骤如下:

a.用vim编辑/etc/sysconfig/iptables文件,在COMMIT之前添加一行,开放3306端口,如下:
Centos中配置MySQL可远程登陆详细图文教程


Centos中配置MySQL可远程登陆详细图文教程

b.保存退出之后,重启防火墙,再查看防火墙端口状态:
Centos中配置MySQL可远程登陆详细图文教程

由上图可以看到,防火墙已经开放3306端口。

 

3.测试登陆MySQL

配置好Mysql和防火墙,接下来就可以进行测试了。

我用的是Navicat for MySQL登陆测试,打开软件,点击连接,在新建连接窗口,按提示输入信息:
Centos中配置MySQL可远程登陆详细图文教程

注意:主机名为远程登陆的主机的ip地址,密码为第一个步骤中为root用户设置远程访问权限时设置的密码,这里为123。

点击“连接测试”按钮,若弹出连接成功对话框,则表示远程登陆成功,如下:
Centos中配置MySQL可远程登陆详细图文教程

至此,Centos中Mysql配置可远程登陆顺利结束。