原因是:安装MySQL 8过程中的Authentication Method这一配置过程,基于不同的加密方式。
// 登录MySQL
mysql -u root -p
// 更改加密方式 (666666为mMySQL密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '666666' PASSWORD EXPIRE NEVER;
// 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '666666';
// 重启MySQL
mysql.server restart
2.常见问题
2.1 MySQL 8 driver为:com.mysql.cj.jdbc.Driver
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.2 url中没有设置useSSL=false
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 <br>SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate<br> 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<br> verification.
2.3 url中没有设置serverTimezone=UTC
The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the
serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
2.4 url中参数没有用;拼接 & -> &
The reference to entity “useSSL” must end with the ‘;’ delimiter.
3. MySQL 8 连接配置
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
网友评论