MySql数据库拒绝访问解决办法

远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect
MySql数据库拒绝访问解决办法
操作步骤也是很简单的:
1 进入你的数据库
$ /usr/local/mysql/bin/mysql -u root -p按Ener,输入你的密码
2 成功进入之后依次操作
mysql> user mysql; (分号不要忘记),按Ener
mysql> use mysql; (分号不要忘记),按Ener
MySql数据库拒绝访问解决办法
mysql> select host from user;(分号不要忘记),按Ener
mysql> update user set host ='%' where user ='root';
MySql数据库拒绝访问解决办法
mysql> exit; 退出MySql模式。
3 进入计算机的服务界面,重新启动mysql服务就搞定啦。
扩展:
1 成功连接后,出现如下警告:
Mon Apr 04 15:43:00 CST 2016 WARN: Establishing SSL connection without server‘s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn‘t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false‘. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
这是警告不是错误,以后使用是不影响的。大概的意思就是说建立ssl连接,但是服务器没有身份认证,这种方式不推荐使用。
解决办法:
  原来的连接url:Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "letmein");
  现在的连接url:Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false","root", "letmein");
            // 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
如果是使用Spring框架则需要把application.propeties配置文件的mysql路径改为如下:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&AutoReconnect=true&characterEncoding=utf-8&useSSL=false
参考: