我的应用程序在本地运行良好,但是当我尝试连接到远程服务器时,出现此错误:CLIENT_PLUGIN_AUTH是必需的。
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
答案 0 :(得分:4)
我明白了。
步骤1。 在远程mysql服务器上创建用户并授予所有权限。
第2步。 更改数据源网址
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
第3步。 更改pom.xml mysql
spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbtest
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
答案 1 :(得分:0)
您需要找到与您的MySQL安装版本兼容的版本
默认值为
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
将其更改为某些版本
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
现在删除安装的默认依赖项。 “程序包资源管理器”>“项目”>“ Maven依赖项”,键入MySql,现在将其删除(mysql-connector-java-x.y.z.jar)
尝试使版本更接近您的MySql版本并检查maven repository和 找到使用率更高的较近版本
对于我来说,MySql的版本是5.0.27,您可以从“ MySQL命令行客户端”中看到它,而我尝试的版本是5.1.46
还有1件事是添加application.proerties
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
但是,如果您要使MySql依赖版本接近于8,则为
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
这不是必需的,因为它在内部使用
现在执行“全新安装”您的应用程序,右键单击“运行为“> mvn clean和“运行为”> mvn安装,然后使用鼠标右键单击“ maven“>更新项目(Alt + F5)来构建您的应用程序
现在确认版本更改,检查Maven依赖项,mysql-connector-java-5.1.46.jar(您提到的依赖项)
并且,如果仍然无法正常运行,请确保您已使用某些具有localhost服务器的应用程序进行了检查。然后检查/ etc / drivers / hosts文件并取消注释此行
# 127.0.0.1 localhost
答案 2 :(得分:0)
检查以下各项是否正确配置。这为我解决了问题。如果您不熟悉Java环境,那么绝对应该寻找这些。
1)检查MySQL-connector-java驱动程序版本是否适合您使用的PySpark版本。如果没有尝试更改它。
2)确保要查找的文件夹中仅存在一个mysql-connector-java-.jar驱动程序文件。从该位置删除其他版本。 PySpark可能采用了其他版本
4)验证是否正确设置了环境变量SPARK_HOME。若要进行检查,请复制在环境变量窗口中指定的位置,并将其粘贴到文件资源管理器(Windows)中。这应该转到正确的位置。
3)确认您的环境是否正在使用您要使用的mysql-connector-java-.jar驱动程序文件。一种测试方法是从该位置删除文件,然后查看错误是否更改。如果发生相同的错误(删除之前的错误),则您的环境未在使用您要使用的驱动程序文件。找到您的PySpark使用的文件的位置。尝试更改此路径(通过更改环境变量或在代码中手动指定路径)或使用此位置,然后将所有必需的驱动程序文件粘贴到该位置
这些是我所做的检查,并且只要您的代码没有问题,上述解决方案之一就可以解决该问题。
答案 3 :(得分:0)
检查您是否有版本问题。
Spring Boot项目创建者将下载最新的MySQL连接器(当前为版本8),因此,如果您运行的是旧版本的MySQL,则可能会由此导致CLIENT_PLUGIN_AUTH错误。
您可以说服Maven使用较旧版本的连接器(如Satish的回复所示)或在Spring Boot外部添加连接器:
从pom.xml中删除mysql-connector-java依赖项
为您的MySQL下载mysql-connector-java-通常是您的发行版中的一个。
使用: 项目->属性-> Java构建路径
选择“库”标签。
并添加外部JAR:
/usr/share/java/mysql-connector-java-5.1.17.jar
或类似的东西。