最近,在安装好新版本的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就可以进行远程连接了。