2012-01-11 5 views
0

У меня есть код Java, и я подключаюсь к базе данных mysql со следующей строкой подключения.Подключение к ошибке базы данных MySQL в Java

String userName = "admin"; 
String password = "pass"; 
String url = "jdbc:mysql://<my IP>/dbase"; //not localhost 
Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
conn = DriverManager.getConnection (url, userName, password); 

Когда я делаю JAR (Runnable JAR через затмение), и принять его на другую машину в той же сети, я получаю сообщение об ошибке

Access denied for user 'admin'@'<another machine IP' (using password: YES) //not localhost 

IP-волшебно меняется на другой машине IP, когда я возьмите JAR на другую машину. У администратора есть все привилегии.

Неправильно? Пожалуйста помоги !!

+0

Вы пытаетесь получить доступ к базе данных с другого компьютера ip. Поэтому ошибка правильная. Ваш сервер MySQL настроен для доступа к этому IP-адресу? – rmarimon

+0

У вас там жесткий диск? – kosa

+1

Почему это 'root' находится в сообщении об ошибке, где на самом деле userName =' admin'? даже если он изменит свой IP-адрес, имя пользователя все равно будет 'admin', а не' root'. –

ответ

4

IP-адрес, указанный в сообщении об ошибке: IP-адрес компьютера, на котором работает ваша программа,. Это говорит вам, что вы не разрешено подключаться к MySQL из, что IP-адрес в качестве root

Вам нужно будет поговорить с человеком, который конфигурирует/управляет базой данных MySQL. Скорее всего, это преднамеренная мера безопасности.

+0

Прямо к точке =] – SHiRKiT

+0

Спасибо Брайан. Я уверен, что это проблема. Я буду консультироваться с моим администратором баз данных завтра – Ank

2

Возможно, вам нужно выполнить команду ниже.

grant all privileges on *.* to 'admin'%'@' identified by 'pass'; 
flush privilges; 
+0

Это уже было сделано. – Ank

0

Я думаю, что с вашим кодом Java нет проблем. Кроме того, попробуйте подключиться к серверу MySQL из командной строки

mysql -u root -h <ip address> -p 

Если вы получили ту же ошибку, то возможная причина будет 1. В правильном пароле 2. Разрешение запрещено доступ через сеть

Вы может дать разрешение, используя команду ниже

GRANT ALL ON db.* to [email protected]'ip' IDENTIFIED BY 'PASSWORD'; 
Смежные вопросы