Spring Can';t使用JDBC连接到MariaDB,mysql utils成功
我使用JDBC和SpringBoot2.2.2连接到MariaDB实例。登录失败,并显示以下消息: 原因:java.sql.SQLInvalidAuthorizationSpecException:无法 连接到 地址=(主机=server.company.domain)(端口=3306)(类型=master):访问权限 拒绝用户'user'@'server.company.domain'(使用密码: 是的) 当我运行Spring Can';t使用JDBC连接到MariaDB,mysql utils成功,spring,spring-boot,jdbc,mariadb,Spring,Spring Boot,Jdbc,Mariadb,我使用JDBC和SpringBoot2.2.2连接到MariaDB实例。登录失败,并显示以下消息: 原因:java.sql.SQLInvalidAuthorizationSpecException:无法 连接到 地址=(主机=server.company.domain)(端口=3306)(类型=master):访问权限 拒绝用户'user'@'server.company.domain'(使用密码: 是的) 当我运行mysqldump-u“user”-p“password”-h server.c
mysqldump-u“user”-p“password”-h server.company.domain dbname
时,这一切正常
- 转储和Spring引导应用程序都从同一台机器(数据库服务器本身)运行
- 使用的用户和密码相同
- 密码或用户中没有特殊字符(只有小写/大写字符和数字)
- jdbc连接字符串如下所示:
jdbc:mariadb://server.company.domain:3306/dbname
- 我已经尝试使用
而不是服务器名localhost
- 当我更改JDBCURL、用户和密码时,同一个应用程序就可以登录到我的开发站点
我建议你遵循以下链接:,如果它不能解决你的问题,请返回,说明你尝试了什么,以及什么不起作用 看来您在MariaDB上遇到了麻烦,而不是spring boot本身。
我建议你遵循以下链接:,如果它不能解决你的问题,请返回,说明你尝试了什么,以及什么不起作用 我做了一个简短的
节目
通过能够连接到数据库的mysql
命令。输出给了我以下信息:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'nonono' REQUIRE SSL WITH GRANT OPTION
相关部分是需要SSL
:与该服务器的连接需要加密
当我检查/etc/my.cnf.d/
中的文件时,我发现一个包含以下行的文件:
[server]
ssl=1
ssl-cert=/path/to/certificate/cert.pem
通过谷歌搜索,我找到了一个描述如何将JDBC驱动程序设置为使用ssl的链接。它还向您解释了为什么在将trustServerCertificate
设置为true
之前应该三思
我的spring.datasource.url
现在看起来像这样:
jdbc:mariadb://server.company.domain:3306/dbname?useSSL=true&trustServerCertificate=true&serverSslCert=/path/to/certificate/cert.pem
简而言之:
拒绝用户访问
并不能说明全部情况。这会让你认为你的密码可能是错误的,但你会因为其他原因被拒绝通过能够连接到数据库的mysql
命令。输出给了我以下信息:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'nonono' REQUIRE SSL WITH GRANT OPTION
相关部分是需要SSL
:与该服务器的连接需要加密
当我检查/etc/my.cnf.d/
中的文件时,我发现一个包含以下行的文件:
[server]
ssl=1
ssl-cert=/path/to/certificate/cert.pem
通过谷歌搜索,我找到了一个描述如何将JDBC驱动程序设置为使用ssl的链接。它还向您解释了为什么在将trustServerCertificate
设置为true
之前应该三思
我的spring.datasource.url
现在看起来像这样:
jdbc:mariadb://server.company.domain:3306/dbname?useSSL=true&trustServerCertificate=true&serverSslCert=/path/to/certificate/cert.pem
简而言之:拒绝用户访问
并不能说明全部情况。它使您认为您的密码可能是错误的,但您被拒绝的其他原因