
私は MariaDB 10.1 インスタンス (Debian GNU/Linux 9 テスト/不安定版) を持っています。これはローカル ネットワーク データベース サーバーとしてのみ機能します。この質問の範囲外の理由により、そのサーバーはデータベース自体以外のものをホストしてはならず、データベースはサーバーの 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 のサーバーから DB サーバーに接続できますが、ユーザーに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
すべてのデータベースとその中のすべてのテーブルをDB サーバー (または他のユーザー) に表示するには、どのようなコマンドを発行すればよいですか?
答え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;
違いに注意してください:grant all on ...
ではなく ですgrant all PRIVILEGES on...
。