Ubuntu Server 20.04 Java mysql-connector-j-8.0.33.jar 在 PATH 中用于从 java 应用程序主程序连接到 mysql 数据库

Ubuntu Server 20.04 Java mysql-connector-j-8.0.33.jar 在 PATH 中用于从 java 应用程序主程序连接到 mysql 数据库

我在使用 Glassfish 4.1 连接 mysql 数据库时遇到了问题。我已检查数据库是否可以使用 root 和密码登录。当调用 Web 应用程序时,Glassfish 始终显示:

java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: Access denied for user 'root'@'localhost'

我编写了一个小应用程序,需要测试 java 是否可以成功连接到 mysql,然后才能进一步查找故障。我的问题是,在执行应用程序之前,如何将 mysql-connector-j-8.0.33.jar (/home/glassfish/glassfish4/glassfish/lib/mysql-connector-j-8.0.33.jar) 放入用户路径中,这将引用驱动程序以连接到 mysql 数据库。我必须做这样的事情吗?这是行不通的:

# MYSQL CONNECTOR ON PATH
export MSQLCONNECTOR_HOME=/home/glassfish/glassfish4/glassfish/lib
echo $MSQLCONNECTOR_HOME
# set PATH global VARIABLE ADD *_HOME
export PATH=$PATH:$JAVA_HOME/bin:MSQLCONNECTOR_HOME

答案1

您报告的错误信息

Access denied for user 'root'@'localhost'

来自 MySQL,因此驱动程序已正确加载并已建立连接,但访问被拒绝(或者更确切地说,未授予root来自 localhost 的用户访问权限)。您可以检查连接属性和/或正在使用的 JDBC 的 URL。用户root,听起来您正在以rootLinux 用户身份运行 MySQL,您能确认一下吗,或者您正在尝试以用户身份连接到 MySQL root?(这两种做法都不好,您不应该使用 root 用户运行您的应用程序/进程 - 如果没有明确要求,我们会知道 - 和/或不使用 MySQL root 用户访问您的数据库)。

相关内容