我在连接数据库时遇到了一些麻烦。我连接到我网站上的同一个数据库并且它可以工作,所以我知道它可能与我的Java代码中的数据库路径有关。
Connection con = DriverManager.getConnection("jdbc:mysql://ultraboodog.com:3306/ultraboo_lr", "ultraboo_root", "password");
我不知道为什么它不起作用,我收到了这个错误:
java.sql.SQLException: Access denied for user 'ultraboo_root'@'S010650465d6c5d19.ss.shawcable.net' (using password: YES)
非常感谢任何帮助:)
编辑: 我也使用mysql-connector-java插件连接到数据库,它由Oracle制作。
答案 0 :(得分:0)
MySQL访问权限由用户名,源地址和密码决定。大多数托管服务限制允许用户连接的位置,但允许您在其面板中添加位置(如cPanel)。
如果服务器完全由您控制并且您可以直接访问MySQL,则GRANT documentation for MySQL会显示如何执行此操作,例如:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
“localhost”部分可以是主机名,IP地址或通配符,例如%.example.com或192.168.1。%。在您从有线电视提供商处连接的情况下,如果您的IP地址相当稳定,最安全的方法是添加您的确切IP地址,当它发生变化时(希望很少),您可以更新MySQL权限以匹配。 / p>
允许SQL访问Internet的安全隐患是您不应轻易考虑的事情。
答案 1 :(得分:0)
java.sql.SQLException: Access denied for user 'ultraboo_root'@'S010650465d6c5d19.ss.shawcable.net' (using password: YES)
正如您所提到的,问题在于与数据库本身建立连接。声明
尝试这样的事情:
conn = DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword");
s = conn.createStatement();
int result = s.executeUpdate("CREATE DATABASE databasename");