Я разрабатываю собственный модуль для Android в ответном родном приложении. Я использую JDBC для прямого подключения к базе данных mysql, размещенной на моем компьютере. Мой телефон и компьютер находятся в одной сети Wi-Fi, и когда я пытаюсь получить доступ к db, я получаю следующую ошибку.
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();}
Также обратите внимание, что этот код отлично работает на моем личном ноутбуке, но я получаю эту ошибку, когда пытаюсь запустить это в нашей сети компании, используя компьютер компании.
Проблема была решена, когда я предоставил все привилегии пользователю, с которым я пытаюсь подключиться.
Я использовал следующую команду:
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' identified by 'user_password';
FLUSH PRIVILEGES;
Ваше соединение правильно, но у текущего пользователя нет прав доступа к базе данных. сначала вы должны получить разрешение на доступ к соответствующему пользователю. Вы можете дать это, войдя в cpanel и выберите базу данных и дайте разрешение уважаемому пользователю, в который вы вошли.