Я пытаюсь подключиться к удаленному серверу в Java, от внутрибрюшинно 111.111.111.111 до 111.111.111.222 внутрибрюшинно с разъемом JDBC:Установить хост пользователя MySQL в связи JDBC Java
conn = DriverManager.getConnection("jdbc:mysql://"+serverAddress+":3306/" + this.dBName + "?" + "user=" + this.userName + "&password=" + this.password + "");
- [email protected] .111.111 создается в базе данных, и GRANTS работают нормально.
- Пользователь @ localhost не существует в базе данных, потому что я думаю, что это не обязательно.
- Брандмауэр разрешает подключение.
По какой-то причине, когда я пытаюсь запустить соединение генерируется исключение:
java.sql.SQLException: The user specified as a definer ('user'@'localhost') does not exist
но я запрашивающий соединение с внутрибрюшинно 111.111.111.111
Примечание: когда я напишите @ в имени пользователя, это показывает правильный IP-адрес хоста, но с дополнительным @, например:
java.sql.SQLException: Access denied for user '[email protected]'@'111.111.111.111' (using password: YES)
Итак, что я делаю неправильно? или как установить хост имени mysql?
EDIT:
Кроме того, я опробованный терминал подключение MySQL и работает должным образом: (так @ SSS ф является 111.111.111.111)
[email protected]:~$ mysql -h 111.111.111.222 -u user -p dbname
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 85
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+---------------------+
| Tables_in_dbname |
+---------------------+
| wh_with_customer |
+---------------------+
10 rows in set (0,00 sec)
'user' does't имеют привилегию соединяться с MySQL. Вы должны дать 'user' разрешение – haifzhan
« потому что я думаю, что это не обязательно ». - проверьте свои предположения. – duffymo
@duffymo, потому что я просто подключаюсь к базе данных удаленно. Так что это необходимо? –