mysql8.0只能本地连接解决方法

最近,在安装好新版本的mysql后,使用java程序连接出现几个问题,首先是数据库连接url的问题,新的连接url需要加上时区这个参数,例如:
jdbc:mysql://127.0.0.1:3306/localmysql?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai 这样才能正常连接到数据库。第二个问题是连接url中,IP地址只能使用127.0.0.1或者localhost,如果直接使用本机IP也是不行的,这里记录一下解决方法:

1.查看用户允许登录的主机

use mysql;
select user,host from mysql.user;

在这里插入图片描述
2.将需要远程连接用户的host字段更新为%,我这里用户名是root:

update mysql.user set host='%' where user='用户名';

3.修改mysql8.X的密码认证策略为5.X的版本(我此处用户名和密码均为root):

ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

4.修改权限:

grant all privileges on *.* to '用户名'@'%';

5.刷新权限:

flush privileges;

到这里就完成了,这时mysql就可以进行远程连接了。

一颗安安静静的小韭菜。文中如果有什么错误,欢迎指出。
原文地址:https://www.cnblogs.com/c-Ajing/p/13448366.html