本机装的MySQL数据库,本机可以正常连接,其他机器访问报错,is not allowed to connect to this MySQL server,防火墙等其他策略均配置没问题。
解决方案:
出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。
1、在MySQL所在服务器上使用命令登录到MySQL数据库中
mysql -u root -p
2、选择mysql数据库,并查询权限
use mysql; select host from user where user='root';
可以看到,执行查询语句后得到的数据结果中 host 的值是 localhost
我们执行update语句修改权限
update user set host = '%' where user ='root';
3、刷新配置
flush privileges;
再次执行查询权限语句
select host from user where user='root';
可以看到,已经修改成功
4、最后再次用其他机器连接MySQL数据库,可以连接成功
DBMS: MySQL (版本 5.7.41)
区分大小写: 普通形式=lower, 分隔形式=lower
驱动程序: MySQL Connector/J (版本 mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0),JDBC4.2)
Ping: 29毫秒
SSL: yes
maven-default-http-blocker external:http:* Pseudo repository to mirror external repositories initially using HTTP. http://0.0.0.0/ true
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
Sql代码 复制代码
1. mysql -u root -pvmwaremysql>use mysql;
2. mysql>update user set host = '%' where user = 'root';
3. mysql>select host, user from user;
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
Sql代码 复制代码
1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
2.FLUSH PRIVILEGES;