春季引导CLIENT_PLUGIN_AUTH是必需的

时间:2018-11-07 15:27:27

标签: java mysql spring

我的应用程序在本地运行良好,但是当我尝试连接到远程服务器时,出现此错误: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

4 个答案:

答案 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

或类似的东西。