需要spring引导客户端插件身份验证

oknrviil  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(279)

我有我的应用程序在本地正常工作,但当我试图连接到远程服务器我得到这个错误:客户端\插件\认证是必需的。

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
mwg9r5ms

mwg9r5ms1#

检查是否存在版本问题。
springboot项目创建者将下载最新的mysql连接器(当前版本为8),因此如果您运行的是较旧版本的mysql,那么client\u plugin\u auth错误可能就是由此产生的。
您可以说服maven使用旧版本的连接器(如satish的回复中所示),或者在spring boot之外添加连接器:
从pom.xml中删除mysql连接器java依赖项
为您的mysql下载mysql连接器java–通常是从您的发行版下载的。
使用:项目->属性->java构建路径
选择“库”选项卡。
并添加外部jar:

/usr/share/java/mysql-connector-java-5.1.17.jar

或者类似的东西。

csga3l58

csga3l582#

检查以下配置是否正确。这为我解决了问题。如果您是java环境的新手,那么您一定要寻找这些。
1) 检查mysql连接器java驱动程序版本是否适合您正在使用的pyspark版本。如果不是,试着改变它。
2) 确保您要查找的文件夹中只存在一个mysql connector java-.jar驱动程序文件。从此位置删除其他版本。另一个版本可能是pyspark采用的
4) 验证环境变量spark\ U home是否设置正确。要检查这一点,请复制环境变量窗口中给定的位置,并将其粘贴到文件资源管理器(windows)中。应该放在正确的位置。
3) 确认您的环境是否正在使用您希望它使用的mysql connector java-.jar驱动程序文件。测试这一点的一种方法是从这个位置删除文件,并查看错误是否发生了变化。如果发生相同的错误(删除之前的错误),则说明您的环境没有使用您希望它使用的驱动程序文件。找到pyspark正在使用的文件的位置。尝试更改此路径(通过更改环境变量或在代码中手动指定路径),或使用此位置并将所有必需的驱动程序文件粘贴到该位置
这些是我做的检查,上面的解决方案之一应该可以解决问题,前提是你的代码没有问题。

wj8zmpe1

wj8zmpe13#

我得到了它。
第一步。在远程mysql服务器上创建一个用户并授予所有权限。
第二步。更改数据源url

spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbtest

第三步。更改pom.xml mysql

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>
Check that version is changed to <version>5.1.6</version> from <scope>runtime</scope>
bxgwgixi

bxgwgixi4#

你需要为你的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>

现在删除已安装的默认依赖项。“package explorer“>您的项目>“maven dependencies”>键入mysql它将出现,现在删除它(mysql-connector-java-x.y.z.jar)
试着让版本更接近你的mysql版本&检查maven存储库,找到一个更接近的版本有更多的使用
对我来说,mysql版本是5.0.27,你可以从“mysql命令行客户端”看到,我尝试的版本是5.1.46
还有一件事是添加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 install,然后使用右键单击“maven”>update project构建您的应用程序(alt+f5)
现在要确认版本更改,请检查maven依赖关系mysql-connector-java-5.1.46.jar(您提到的依赖关系)
而且,如果仍然无法工作,请确保您已经检查了某个具有localhost服务器的应用程序。然后检查/etc/drivers/hosts文件并取消对此行的注解


# 127.0.0.1       localhost

相关问题