我已经检查了其他Stack Overflow和网络链接:
MySQL在Linux服务器上
Linux uslx600 2.6.32-358.14.1.el6.x86_64 #1 SMP Mon
表示其IP为1.2.3.4
我可以使用MySQL Workbench从笔记本电脑连接到它。由于Stack Overflow策略,我无法附加图像,但对话框如下:
Connection Method: tcp/ip
Hostname: <host of the server, so e.g. 1.2.3.4>
Port: 3306 <This is same port as mentioned below for JDBC connection>
username: bugs
Default Schema: bugs
在我运行[select user(), current_user()]
的mysql中,我得到了
bugs@<my laptop IP>
bugs@%
现在我正在尝试从MySQL数据库所在的Linux服务器进行连接。
以下作品,用户本身就是用户,即没有“@%”或其他东西:
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bugs", user, pasword);
以下也有效:
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bugs", user, pasword);
但如果我提供盒子或主机名的IP地址,它就不起作用。而我真正努力的是从另一台Linux服务器访问它,这可能由于同样的问题而无法正常工作。
失败时的错误消息是:
Access Denied for user 'bugs'@'<hostname of the server>' (using password=YES)
如果服务器上存在访问问题,那么MySQL Workbench不应该有同样的问题吗?
并current_user()
说bug@%
所以它并不意味着用户设置正确吗?
我也尝试将用户更改为'user'@'%'等,但在所有这些情况下,错误消息始终是:
'bugs'@'%'@'<hostname>'
答案 0 :(得分:0)
答案 1 :(得分:0)
错误表明它无法使用给定的密码连接到服务器。可能是您的密码不正确,或者如果它有特殊字符,您必须正确地转义该字符串。
另一方面,用户错误无法从指定主机连接到服务器。尝试从您连接的主机向用户提供GRANTS,然后检查您是否能够连接到MySQL。
GRANT ALL PRIVILEGES ON *.* TO 'bugs'@'%' IDENTIFIED BY 'password';
或评论my.cnf文件中的行
#bind-address = 127.0.0.1
重启mysql服务。