我正在反应原生应用程序中开发一个Android原生模块。我正在使用JDBC直接连接我的电脑上托管的mysql数据库。我的手机和电脑在同一个wifi网络上,因为我正在尝试访问数据库,我收到以下错误。
java.sql.SQLException: Access denied for user 'root'@'172.20.24.11'(using password:YES)
以下是我用来连接数据库的代码:
try{
Connection con=DriverManager.getConnection(
"jdbc:mysql://172.20.25.207:3306/dgcis","root","root");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select COUNTRY_NAME from exp_imp_brc limit 1;");
while(rs.next())
str = rs.getString(1);
System.out.print(str);
con.close();
}
catch(Exception e){ str = e.toString();}
另请注意,此代码在我的个人笔记本电脑上工作得非常好,但是当我尝试使用公司的电脑在我们的公司网络上运行时,我收到此错误。
您的连接是正确的,但当前用户没有访问数据库的权限。首先,您必须获得对各个用户的访问权限。您可以通过登录cpanel并选择数据库来授予该权限,并授予您登录的受尊重用户的权限。
当我将所有权限授予我正在尝试连接的用户时,问题得以解决。
我使用了以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' identified by 'user_password';
FLUSH PRIVILEGES;