天天看點

Mysql8.0.11踩過的坑

Java連接配接Mysql應該是很簡單的事情,但是随着Mysql的不斷更新,有些配置一定要注意,這裡記錄踩過的坑。。。。

1、Mysql的安裝,我這裡使用msi安裝包進行安裝,安裝完會發現,data檔案夾以及my.ini檔案均找不到了。。。

實際上,mysql更新後(不清楚從哪個版本開始的),data檔案以及my.ini預設生成在c盤的programData檔案夾下,例如我的如下:

Mysql8.0.11踩過的坑

盡管我已經指定安裝路徑在E盤,但是這些檔案仍然生成到了C槽的programData檔案夾下,如果你的C槽沒有programData,說明它被隐藏了,調整設定顯隐藏檔案夾就好。

2、用戶端連接配接時,提示用戶端版本過低(即:mysql 1521錯誤)

網上大部分的解決辦法是使用:set password for '使用者名' @ '主機名' = old_password('密碼');

執行時發現old_password函數已經不支援了。。。

有效的解決辦法是:https://blog.csdn.net/fanxiangru999/article/details/80726413

3、Java連接配接Mysql8時要注意一下幾點:

    1)驅動不再是com.mysql.jdbc.Driver,正确可用的應該是:com.mysql.cj.jdbc.Driver

    2)注意項目引入的Mysql版本,應該是:

<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.11</version>
		</dependency>
           

    3)如果連接配接仍然提示連接配接失敗(Communications link failure),注意修改my.ini兩項配置為如下:

interactive_timeout=604800
wait_timeout=604800
           

正文完畢~~~~~下面是我的application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/wechat?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=*****
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

server.port = 80
server.session.timeout=10
#防止亂碼
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8


# 配置jsp檔案的位置,預設位置為:src/main/webapp
spring.mvc.view.prefix=/pages/
# 配置jsp檔案的字尾
spring.mvc.view.suffix=.jsp

#Mybaties
mybatis.type-aliases-package=wechatService.myb.entity
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
mybatis.config-location=classpath:mybatis/mybatis-config.xml

#cache 多個用逗号分開
spring.cache.cache-names=userCache
spring.cache.jcache.config=classpath:ehcache.xml

#LOG日志
logging.level.wechatService=WARN
logging.level.wechatService.myb.mapper=DEBUG
logging.file=logs/WeChatServer.log