Подключиться к базе данных MySQL Java - PullRequest
0 голосов
/ 10 января 2012

Я пытаюсь подключиться к базе данных MySQL из Java (MySQL размещен на сервере WAMP)

String userName = "root";
String password = "pass";
String url = "jdbc:mysql://localhost/dbase";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password); 

Соединение в порядке, когда я работаю с localhost.Однако, когда я запускаю этот код с другого компьютера, заменяя localhost на IP-адрес моего компьютера (в той же сети), я получаю сообщение об ошибке:

message from server: "Host '<name>' is not allowed to connect to this MySQL server"

Я также пытался использовать порт 3306.Что не так?

Ответы [ 2 ]

5 голосов
/ 10 января 2012

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

Как-то так должно работать:

GRANT ALL ON foo.* TO root@'1.2.3.4' IDENTIFIED BY 'PASSWORD';

С другой стороны; Я бы не использовал root для доступа к базе данных; для этого вам следует использовать учетную запись обычного пользователя.

2 голосов
/ 10 января 2012

Вы не должны использовать root-аккаунт для разработки. Чтобы решить вашу проблему, давайте создадим гипотетического пользователя с именем dbasedev .

CREATE USER 'dbasedev'@'%' IDENTIFIED BY 'passw0rd!';
GRANT ALL PRIVILEGES ON *.* TO 'dbasedev'@'%';
FLUSH PRIVILEGES;

Это позволит вам подключиться к серверу MySQL с идентификатором пользователя: dbasedev, паролем: passw0rd!, с любого хоста.

Это дополнение к ответу @ Icarus, я не могу опубликовать весь код в комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...