
У меня есть экземпляр MariaDB 10.1 (Debian GNU/Linux 9 testing/unstable). Он предназначен для работы в качестве локального сетевого сервера базы данных и ничего более. По причинам, выходящим за рамки этого вопроса, этот сервер не должен размещать ничего, кроме самой базы данных, которая должна прослушивать IP-адрес сервера (10.7.33.102).
Если я подключаюсь к базе данных из оболочки сервера, то все в порядке:
root@datangshan:~# mysql
[...]
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| drackmd |
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
Это drackmd
база данных, которую должны использовать другие хосты. Я пробовал разрешить root
пользователю подключаться с другого хоста с помощью следующей команды:
grant all privileges on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;
Затем с сервера по адресу 10.7.33.107 я могу подключиться к серверу БД, но у root
пользователя, похоже, нет каких-то прав:
[email protected]:~# mysql -h 10.7.33.102 -p
Enter password:
[...]
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
Какую команду мне следует ввести на сервере БД, чтобы он root
(или другие пользователи) увидели все базы данных и все таблицы в них?
решение1
Решение я нашел на #maria
канале IRC:
drop user 'root'@'10.7.33.107';
drop user 'root'@'%';
flush privileges;
grant all on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;
Обратите внимание на разницу: это a grant all on ...
вместо a grant all PRIVILEGES on...
.