2017-02-08 2 views
0

Я прочитал много ответов на этот вопрос, но не нашел решения. У меня есть сервер mysql на Azure (пример 13.25.147.140).Не удается подключиться к серверу MySQL удаленно

my.cnf:

[mysqld] 
# bind-address=127.0.0.1 
init_connect= ^`^xSET collation_connection = utf8_unicode_ci ^`^y 
character-set-server = utf8 
collation-server = utf8_unicode_ci 

[client] 
default-character-set = utf8 

Затем я сделал sudo service mysql restart

Затем получил разрешение на корень:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'57.26.24.157' IDENTIFIED BY 'password' WITH GRANT OPTION; 
mysql> SELECT user, host from user; 
+------------------+--------------+ 
| user    | host   | 
+------------------+--------------+ 
| root    | %   | 
| root    | 57.26.24.157 | 
| debian-sys-maint | localhost | 
| mysql.sys  | localhost | 
| paymon   | localhost | 
| phpmyadmin  | localhost | 
| root    | localhost | 
+------------------+--------------+ 

Но когда я попытался соединить с моего компьютера, я получил это:

mysql -u root -p -h 13.25.147.140 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'57.26.24.157' (using password: YES) 

Как я могу это исправить?

+2

Не совсем лазурь вопрос потому что кажется, что у вас солидная связь. Вы пробовали создать обычного пользователя? Вы можете обратиться к руководству по Linux на Azure для MariaDB по адресу https://linux.azure.david.betz.space/_/mariadb, чтобы узнать, как это сделать. Я думаю, это хороший следующий шаг. –

ответ

0

По умолчанию mysql запрещает вход в систему удаленно, это предостережение. Если вы хотите использовать корень для входа удаленно для некоторого теста, мы можем использовать эту команду, чтобы изменить его:

[[email protected] etc]# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 2 
Server version: 5.1.73 Source distribution 
mysql> use mysql; 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

Database changed 
mysql> select host, user from user where user="root"; 
+-----------+------+ 
| host  | user | 
+-----------+------+ 
| %   | root | 
| 127.0.0.1 | root | 
| localhost | root | 
+-----------+------+ 
3 rows in set (0.00 sec) 

mysql> grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option; 
Query OK, 0 rows affected (0.00 sec) 

Другой VM использовать корень для входа MySQL:

[[email protected] ~]# mysql -u root -p -h 40.71.33.231 
Enter password: 
Welcome to the MariaDB monitor. Commands end with ; or \g. 
Your MySQL connection id is 3 
Server version: 5.1.73 Source distribution 

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

MySQL [(none)]> 
+0

У меня есть «root @%» в моей БД. –

+0

@ VladMarkushin, пожалуйста, попробуйте эту команду, 1 используйте mysql 2grant все привилегии на *. * До 'root' @ '%', идентифицированные паролем с параметром гранта; –

+0

@ VladMarkushin в моем тесте, результат выбора такой же, как у вас, но по-прежнему не может использовать root-вход удаленно, мы должны предоставить все привилегии на *. * На «root» @ «%». –