我有我的应用程序在本地正常工作,但当我试图连接到远程服务器我得到这个错误:客户端\插件\认证是必需的。
server.port=8081
spring.jpa.hibernate.ddl-auto=none
# local
# spring.datasource.url=jdbc:mysql://localhost:3306/dbtest
# spring.datasource.username=user
# spring.datasource.password=password
# remote
spring.datasource.url=jdbc:mysql://userssh:passwordssh@xxx.xxx.xxx.xxx:3306/dbtest
spring.datasource.username=userRemote
spring.datasource.password=passRemote
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4条答案
按热度按时间2nc8po8w1#
你需要为你的mysql安装版本找到一个兼容的版本
默认值是
换个版本吧
现在删除已安装的默认依赖项。“package explorer“>您的项目>“maven dependencies”>键入mysql它将出现,现在删除它(mysql-connector-java-x.y.z.jar)
试着让版本更接近你的mysql版本&检查maven存储库,找到一个更接近的版本有更多的使用
对我来说,mysql版本是5.0.27,你可以从“mysql命令行客户端”看到,我尝试的版本是5.1.46
还有一件事是添加application.proerties
但是,如果您将mysql依赖版本设置为接近8的版本,那么它就是
这是不需要的,因为它需要内部
现在执行“清理安装”您的应用程序,右键单击“运行方式”>mvn clean和“运行方式”>mvn install,然后使用右键单击“maven”>update project构建您的应用程序(alt+f5)
现在要确认版本更改,请检查maven依赖关系mysql-connector-java-5.1.46.jar(您提到的依赖关系)
而且,如果仍然无法工作,请确保您已经检查了某个具有localhost服务器的应用程序。然后检查/etc/drivers/hosts文件并取消对此行的注解
1u4esq0p2#
检查是否存在版本问题。
springboot项目创建者将下载最新的mysql连接器(当前版本为8),因此如果您运行的是较旧版本的mysql,那么client\u plugin\u auth错误可能就是由此产生的。
您可以说服maven使用旧版本的连接器(如satish的回复中所示),或者在spring boot之外添加连接器:
从pom.xml中删除mysql连接器java依赖项
为您的mysql下载mysql连接器java–通常是从您的发行版下载的。
使用:项目->属性->java构建路径
选择“库”选项卡。
并添加外部jar:
或者类似的东西。
jq6vz3qz3#
检查以下配置是否正确。这为我解决了问题。如果您是java环境的新手,那么您一定要寻找这些。
1) 检查mysql连接器java驱动程序版本是否适合您正在使用的pyspark版本。如果不是,试着改变它。
2) 确保您要查找的文件夹中只存在一个mysql connector java-.jar驱动程序文件。从此位置删除其他版本。另一个版本可能是pyspark采用的
4) 验证环境变量spark\ U home是否设置正确。要检查这一点,请复制环境变量窗口中给定的位置,并将其粘贴到文件资源管理器(windows)中。应该放在正确的位置。
3) 确认您的环境是否正在使用您希望它使用的mysql connector java-.jar驱动程序文件。测试这一点的一种方法是从这个位置删除文件,并查看错误是否发生了变化。如果发生相同的错误(删除之前的错误),则说明您的环境没有使用您希望它使用的驱动程序文件。找到pyspark正在使用的文件的位置。尝试更改此路径(通过更改环境变量或在代码中手动指定路径),或使用此位置并将所有必需的驱动程序文件粘贴到该位置
这些是我做的检查,上面的解决方案之一应该可以解决问题,前提是你的代码没有问题。
mbyulnm04#
我得到了它。
第一步。在远程mysql服务器上创建一个用户并授予所有权限。
第二步。更改数据源url
第三步。更改pom.xml mysql