一百六十七、MySQL——MySQL8.0连接jdbc报错(持续更新中)

一、目的

在编写海豚的部署脚本时,遇到MySQL的jdbc连接报错问题,发现这与hive部署里MySQL的jdbc连接也不同

二、MySQL版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.31    |
+-----------+
1 row in set (0.00 sec)

三、MySQL8.0连接jdbc报错

(一)报错: Public Key Retrieval is not allowed

1、原先jdbc的脚本内容

SPRING_DATASOURCE_URL="jdbc:mysql://$hostname:3306/dolphinscheduler?useSSL=false&useUnicode=true&characterEncoding=UTF-8"

2、结果报错Public Key Retrieval is not allowed

3、解决方案

(1)解决方案一

把useSSL=false     改为 useSSL= true

SPRING_DATASOURCE_URL="jdbc:mysql://$hostname:3306/dolphinscheduler?useSSL=true&useUnicode=true&characterEncoding=UTF-8"

(2)解决方案二

增加allowPublicKeyRetrieval=true 

SPRING_DATASOURCE_URL="jdbc:mysql://$hostname:3306/dolphinscheduler?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8"

4、解决效果

这两种方案都测试过,都可行。建议方案二,增加allowPublicKeyRetrieval=true 

一百六十七、MySQL——MySQL8.0连接jdbc报错(持续更新中)_第1张图片

(二)报错:failed to parse the connection string near ';useUnicode=true&characterEncoding=UTF-8'

1、原先jdbc的脚本内容

SPRING_DATASOURCE_URL="jdbc:mysql://$hostname:3306/dolphinscheduler?useSSL=false&useUnicode=true&characterEncoding=UTF-8"

2、结果报错

Caused by: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near ';useUnicode=true&characterEncoding=UTF-8'

一百六十七、MySQL——MySQL8.0连接jdbc报错(持续更新中)_第2张图片

3、解决方案 

不要用&        直接用&

例如

SPRING_DATASOURCE_URL="jdbc:mysql://$hostname:3306/dolphinscheduler?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8"

乐于奉献共享,帮助你我他!

你可能感兴趣的:(MySQL,mysql)