【问题标题】:React Native, Android Studio, JDBC, MySql - Access denied for user 'root' @'ipaddress'React Native,Android Studio,JDBC,MySql - 用户'root'@'ipaddress'的访问被拒绝
【发布时间】:2018-06-25 11:22:52
【问题描述】:

我正在一个 react native 应用程序中开发一个 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();}

另请注意,此代码在我的个人笔记本电脑上运行良好,但当我尝试使用公司的电脑在公司网络上运行此代码时出现此错误。

【问题讨论】:

    标签: android mysql react-native jdbc react-native-native-module


    【解决方案1】:

    您的连接正确,但当前用户没有访问数据库的权限。首先,您必须授予相应用户的访问权限。您可以通过登录 cpanel 并选择数据库并授予您正在登录的受人尊敬的用户权限来提供此权限..

    【讨论】:

    • cpanel 是什么意思,顺便说一句,我使用的是 windows,你能提供任何代码 sn-p
    • cPanel 表示您的域托管控制面板,您在其中托管您的 api 和数据库。如果您在 Windows 服务器上并使用 mysql 作为后端,请转到 phpmyadmin 选择数据库并将用户分配给受尊重的数据库,这与任何编码部分无关
    • 我没有任何api,我正在尝试将我的应用程序直接连接到数据库(我知道不推荐但没有其他选择)
    【解决方案2】:

    当我将所有权限授予我尝试连接的用户时,问题就解决了。

    我使用了以下命令:

    GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' identified by 'user_password';
    FLUSH PRIVILEGES;
    

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 2020-09-12
      • 2013-08-22
      • 1970-01-01
      • 2013-11-25
      • 2011-11-24
      • 2021-06-26
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多