情景: 安装好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,控制面板 打开防火墙,在进入规则中新建一个规则.
3.选择TCP 端口,填 80,3306 端口号 按下一步
4. 选择允许所有连接
5 下一步全选.
有三种方法:
方法一(不推荐)、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"
#mysql -u root -prootmysql>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 -prootmysql>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 下一步全选.
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)