如何设置mysql远程访问及防火墙设置

如何设置mysql远程访问及防火墙设置,第1张

笔者在一个实际的项目中需要MYSQL远程访问.

情景: 安装好Mysql, 本地访问正常,很奇怪局域的机器都无法访问该服务器上的MYSQL数据库.

经过资料查找

原来Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问 .

在MySQL Server端:

登陆MYSQL ..bin\ mysql -h localhost -u root -p

提示你输入密码,输入密码后进入

mysql 命令模式,

mysql>use mysql

mysql>GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION

#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server

#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆

在服务器上,使用IP地址和新的用户,确实可以访问服务器,但是远程机器还是无法访问到该MYSQL.

经过关闭服务器上防火墙,噢, MYSQL是可以访问拉.但是从安全角度出发,是不允许关闭防火墙的.

解决方法:

1,控制面板 打开防火墙,在进入规则中新建一个规则.

2. 选择端口,然后下一步

3.选择TCP 端口,填 80,3306 端口号 按下一步

4. 选择允许所有连接

5 下一步全选.

有三种方法:

方法一(不推荐)、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"

#mysql -u root -proot

mysql>use mysql

mysql>update user set host = '%' where user = 'root'

mysql>select host, user from user

方法二、直接授权(推荐)

从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:(首先登陆Linux服务器,填写下面代码即可)

[root@localhost software]# mysql -u root -proot 

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION

mysql>FLUSH PRIVILEGES

操作完后切记执行以下命令刷新权限

FLUSH PRIVILEGES

方法三:终极方法

注释bind-address = 127.0.0.1

找到mysql.cnf

把bind-address = 127.0.0.1 前面加上 #

即  #bind-address = 127.0.0.1

打开mysql服务器,然后使用下面的命令模式:

mysql>use mysql   

mysql>GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION   

解决方法:

1,控制面板 打开防火墙,在进入规则中新建一个规则.

2. 选择端口,然后下一步

3.选择TCP 端口,填 80,3306 端口号 按下一步

4. 选择允许所有连接

5 下一步全选.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/254933.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存