JDBC:DriverManager.getConnection(url)没有读取用户/密码

时间:2015-09-15 19:09:24

标签: mysql url authentication jdbc

我试图通过DriverManager打开与数据库的连接。当我使用getConnection(url,properties)函数时它工作正常,但是当我尝试将用户名和密码(例如jdbc:mysql:address; user = user; password = password)附加到url并调用getConnection(url)时)我收到以下错误

用户访问被拒绝'' localhost'到数据库' db_aux_linux64_mysql; user = user; password = password'

因此,虽然它能够找到数据库,但由于某种原因,它试图传入一个空字符串作为用户参数(也可能是密码)。关于为什么会出现这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

你使用了错误的网址语法,试试这个:

Connection conn = DriverManager.getConnection("jdbc:mysql://hostname/dbname?user=user&password=password");

注意:不要忘记在主机名后添加数据库名称 - 您收到的错误消息表明jdbc驱动程序正在查找名为的数据库“db_aux_linux64_mysql;用户=用户;密码=密码”。

或者,您可以按照评论中的建议使用DriverManager.getConnection(url, uname, pass),然后您不需要记住jdbc驱动程序的url语法(并且您的代码将更加可移植,因为每个jdbc驱动程序都是主题使用不同的url语法)。

来源:Mysql doc seciton 6.1