问题背景:自己在本机的mysql8瘫痪了,将Oracle中的数据迁移到mysql之后,配置好javaweb工程和虚拟机上的远程Mysql连接的文件之后:遇见了无法访问的问题
具体的配置:
datasource.properties
#oracle database settings jdbc.type=mysql #jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.driver=com.mysql.jdbc.Driver #ce shi huan jing #mysql8(benji) #jdbc.url=jdbc:mysql://localhost:3306/bigdata?characterEncoding=utf-8&serverTimezone=UTC
#mysql远程
jdbc.url=jdbc:mysql://192.168.27.4:3306/bigdata jdbc.username=root
#加密过的远程的mysql密码 jdbc.password=EzqtjrkIcbBfOgBDYYYN4bPkhQY9LfT032e3cJ9P/kBwIoBlYyyjxTYXn6NFjce228RLAwrIEQOmiLcD+lyeMQ==
遇见的第一个问题:
........
caused by: java.sql.SQLException: Access denied for user 'root'@'LAPTOP-SUMF6MPE' (using password: YES)
小小补充,有时需要去更改密码的时候的注意点自己在用cmd登录mysql的时候’,在里面更改密码的时候要注意到如果密码中或者用户名中含有特殊的字符的话:要会转义,否则如果不转义的话,如设置密码为apiwok#123,只是写成下面的样子了,那之后再以设置的密码登录就可能会登不上,因为没有转义,实际上可能设置的密码和自己想想的不一样
mysql> update user set authentication_string='api_work#1234' where user='root' a nd host='localhost'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
遇见的问题二以及注意点:
2‘对于javaweb工程’连接mysql的时候遇见的注意点:
1)如果设置完毕和mysql数据库连接的proties之后,再去连接的时候控制台报错
报错信息如下:
........
caused by: java.sql.SQLException: Access denied for user 'root'@'LAPTOP-SUMF6MPE' (using password: YES)
这是因为权限不够,因为mysql一般默认的是只能是本机等,其他的无法登录,所以要进行授权
具体的授权发方法
mysql授权GRANT ALL PRIVILEGES:作用就是可以以root身份去从任何的机子上去登录某一台机子上的mysql中的数据库
SELECT * FROM mysql.user WHERE USER='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'api_work#1234' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意语句中的root是身份,后面by之后的才是密码
授权方法的连接:https://jingyan.baidu.com/article/455a9950a4fea0a16727787e.html?_t_t_t=0.6624952771235257 里面的方法二是我使用完成的,亲测有效!!!!
授权成功之后就可以成功在protites文件配置正确的情况下去以root的身份去连接上远程的mysql库了
遇见的问题三
javaweb工程和和不同的mysql链接的时候需要的驱动的版本也会是不一样如果是用的是maven管理的话,可以直接在pom中直接更改msyql的驱动的版本就好
对于Mysql8的数据源的话:需要的是mysql和java交互链接的驱动版可以是8.0.11‘
如果是是数据源是Mysql5的话。需要的驱动依赖可以是5.0.13版的
遇见的问题四:
注意eclipse中的配置项目所用的jdk的版本的时候选择的是自己安装的jdk,而不是选择到jre的那层目录,如果选错为jre了,那就会出现错误:
问题解释:jdk版本和mysql驱动版本不兼容,比如:jdk1.7与mysql-connector-java-5.xxx兼容,但与mysql-connector-java-6.xxx及以上不兼容,所以要注意问题三