MySQLエラー Table ‘mysql.servers’ doesn’t exist

Table 'mysql.servers' doesn't existと急に出るようになりました。このエラーについて調べてみました。

原因

このエラーの内容はmysql.serversのテーブルがないよという意味です。mysql.serversはデータベースを管理するためのテーブルの一つです。

MySQLにログインをして確認する

エラーがでているということは存在しないのですが、本当かどうか実際に調べてみたいと思います。

MySQLへログイン
⇒mysql -u root -p

データベースを確認
⇒show databases;
+--------------------+
| Database           |
+--------------------+
| mysql              |
+--------------------+
1 rows in set (0.00 sec)
※実際には作成されているデータベース一覧が表示されます。

データベースを選択
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
↑上記のメッセージがでれば選択された状態なります。

テーブルを確認
⇒show tabbles;
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
17 rows in set (0.00 sec)
とでてきました。mysql.serversがないです

テーブルの作成します

テーブルがないのでテーブルの作成をしていきます。

mysql> CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
Query OK, 0 rows affected (0.01 sec)
↑とでれば作成完了です

確認

テーブルが作成されたか確認します。

 show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| servers                   |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
18 rows in set (0.00 sec)
serversが追加されています。

終了

これで終了です。特にMySQLを修正するとかは必要ないですが、念のためにするのもよいかもしれません