您的位置:首页 > 运维架构 > Linux

Linux mysql授权远程连接

2017-08-28 14:19 78 查看
解决办法总结:

1、确定远程机器的防火墙关闭,或在防火墙允许3306端口号(服务器)

2、确定数据库允许远程访问(本地)

3、通过语句grant all privileges on *.* to 'root'@'%' identified by '123456'。

一  在防火墙允许3306端口:



1 进入iptables.



2 在22端口上面加:-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

增加3306端口。



3 >service iptables restart

//重启



完成

==================================================================================================================================

二 数据库允许远程访问:



使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“2003- Can't connect MySQL Server on 'localhost'(10038)“。

其原因是:远程3306端口未对外开放

解决办法:

首先远程连接服务器,点击“开始”-“管理工具”-“高级安全Windows防火墙”。

在打开的窗口中,左边选中“入站规则”,右边点击“新规则”来新建一个入站规则。



在“规则类型”中选择“端口”,然后下一步。

选中“特定本地端口”,输入3306,然后下一步。

选中“允许连接”,然后下一步。

这一步默认都选中就行,,然后下一步。

最后输入新增的入站规则名称,随便填,自己明白即可。

完成后可以在入站规则列表中可以看到新增的入站规则。

==================================================================================================================================

 grant

1、> MySQL -uroot -p

>password

2、>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

//任何主机访问数据的权限

例如,你想user使用password从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用password作为密码

GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.3'IDENTIFIED BY 'password' WITH GRANT OPTION;

3、>FLUSH PRIVILEGES

//修改生效

4、mysql>EXIT

5、打开3306端口开放

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

6、让其生效

flush privileges;

完美
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  server linux mysql