MySQL/MariaDB: изменить host доступа для пользователя

Автор: | 27/07/2015

mariadb_logoЗадача: есть пользователь, которому при создании доступ был ограничен localhost.

Требуется изменить его и разрешить подключение с любого хоста.

Переключаемся на базу mysql:

mysql> use mysql;

Нас интересуют две таблицы:

mysql> desc user;
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field                  | Type                              | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host                   | char(60)                          | NO   | PRI |         |       |
| User                   | char(16)                          | NO   | PRI |         |       |

и:

mysql> desc db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | char(16)      | NO   | PRI |         |       |

Находим пользователя:

mysql> select host from user where user='sonar';
+-----------+
| host      |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)

Обновляем информацию:

mysql> UPDATE user SET host='%' where user='sonar';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Проверяем:

mysql> select host from user where user='sonar';
+------+
| host |
+------+
| %    |
+------+
1 row in set (0.00 sec)

Повторяем для таблицы db:

mysql> UPDATE db SET host='%' where user='sonar';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> select host from db where user='sonar';
+------+
| host |
+------+
| %    |
+------+
1 row in set (0.00 sec)

Применяем изменения:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Готово.