mysql开启远程链接html
今天在服务器安装了mysql,准备用mysqlguitools远程登陆的时候出错,提示:Host 'xxx' is not allowed to connect to this MySQL server。网上找了一些资料,是mysql未开启mysql远程访问权限致使。mysql
记录解决方案供之后参考。:sql
1.登陆到mysql: mysql -uroot -ppwd数据库
2.查看user表: 服务器
mysql> use mysql
Database changed
mysql> select host,user,password from user;
+------+------+-------------------------------------------+
| host | user | password |
+------+------+-------------------------------------------+
| localhost | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
+------+------+-------------------------------------------+
1 row in set (0.00 sec)ide
表中host、user字段标识了能够访问数据库的主机和用户。例如上面的数据就表示只能本地主机经过root用户访问。原来如此,难怪远程链接死活连不上。ui
为了让数据库支持远程主机访问,有两种方法能够开启远程访问功能。this
第一种(改表法):.net
修改host字段的值,将localhost修改为须要远程链接数据库的ip地址。或者直接修改为%。修改为%表示,全部主机均可以经过root用户访问数据库。为了方便,我直接修改为%。命令:mysql> update user set host = '%' where user = 'root';server
再次查看user表
+------+------+-------------------------------------------+
| host | user | password |
+------+------+-------------------------------------------+
| % | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
+------+------+-------------------------------------------+
1 row in set (0.00 sec)
修改为功,输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程链接数据库成功。
第二种(受权法):
例如,你想root使用mypassword从任何主机链接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
若是你想容许用户myuser从ip为192.168.1.3的主机链接到mysql服务器,并使用mypassword做为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程链接数据库成功。bingo.
别忘记最后的FLUSH PRIVILEGES; 刷新先前的修改。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
以上转载自https://www.cnblogs.com/vathena/p/4012399.html
首先遇到“can't connect to mysql server 10061”
经过查看/etc/mysql/my.cnf找到bind-address=127.0.0.1,直接改成
bind-address=192.168.0.xxx(本机ip)
以后重启mysql就OK了。
参考链接
而后又遇到“host is not allowed to connect to this mysql server”
解决方案:
如何开启MySQL的远程账号-1)首先以 root 账户登录 MySQL
在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,而后cd 进入MySQL 的 bin 目录下,而后输入下面的命令。
> MySQL -uroot -p123456 (123456 为 root 用户的密码。)
如何开启MySQL的远程账号-2)建立远程登录用户并受权
> grant all PRIVILEGES on test_db.* to root@'192.168.1.101' identified by '123456';
上面的语句表示将 test_db 数据库的全部权限受权给 root 这个用户,容许 root 用户在 192.168.1.101 这个 IP 进行远程登录,并设置 root 用户的密码为 123456 。