1、第一個錯誤:1251異常。
(1)安裝完mysql8.0.11之后,使用Navicat遠(yuǎn)程連接Mysql報1251錯誤,但是ip,端口,賬號密碼都是正確的。而且在遠(yuǎn)程服務(wù)器上,直接使用shell命令,用賬號密碼登陸卻可以登陸。
(2)出現(xiàn)這個原因是mysql8 之前的版本中加密規(guī)則是mysql_native_password,而在mysql8之后,加密規(guī)則是caching_sha2_password。
(3)解決問題方法有兩種,一種是升級navicat驅(qū)動,一種是把mysql用戶登錄密碼加密規(guī)則還原成mysql_native_password.。
現(xiàn)在介紹的是第二種方法的步驟:
mysql -uroot -p #進(jìn)入服務(wù)器中,執(zhí)行這條命令,再輸入密碼,即可進(jìn)入mysql數(shù)據(jù)庫
mysql>use mysql;
mysql>ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規(guī)則
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼
mysql>FLUSH PRIVILEGES; #刷新權(quán)限
重新連接,問題就解決了。
2、第二個錯誤:使用mybatis連接mysql,拋出異常錯誤。
(1)異常錯誤:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
(2)錯誤原因:數(shù)據(jù)庫連接驅(qū)動的方式不適用。
(3)解決方法:使用最新的mysql連接驅(qū)動,即將`com.mysql.jdbc.Driver'改為`com.mysql.cj.jdbc.Driver'
以前版本使用的連接驅(qū)動:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://xxx.xx.xx.xxx:3306/db?characterEncoding=utf-8
jdbc.username=root
jdbc.password=admin
解決后的數(shù)據(jù)庫連接驅(qū)動:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xxx.xx.xx.xxx:3306/db?characterEncoding=utf-8
jdbc.username=root
jdbc.password=admin
3、第三個警告:Establishing SSL connection without server's identity verification is not recommended
(1)警告信息: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.
(2)警告原因:這是因為Mysql在高版本需要指明是否進(jìn)行SSL連接
(3)解決方法:雖然不修改也不影響使用,但是如果想要不出現(xiàn)警告,可以在mysql連接字符串url中加入useSSL=false或者useSSL=true即可。如下
jdbc.url=jdbc:mysql://xxx.xxx.xx.xxx:3306/db?characterEncoding=utf-8&useSSL=false