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を修正するとかは必要ないですが、念のためにするのもよいかもしれません