GNU/Linux >> Linux の 問題 >  >> Cent OS

MySQL エラー テーブル 'mysql.servers' が存在しません

プレーンな CentOS 6.x サーバーで MySQL ユーザーに権限を付与しようとしているときに、mysql コンソールで次のエラーを受け取りました:MySQL エラー テーブル 'mysql.servers' が存在しません

びっくりしました…最初に頭に浮かんだのは「mysqlデータベースが壊れた」ということでした。実際、それが問題でした。 mysql.user テーブルは、通常の MySQL インストールに確実に存在するはずなので、MySQL インストールで何かがおかしくなっています。

MySQL エラー テーブル「mysql.servers」が存在しないエラーの修正

mysql.user が存在するかどうかを確認してください

use mysql;
select * from user;

この問題を解決するために私が最初に試みたのは、mysql データベースを再インストールして、特権なしで MYSQL を開始するすべての mysql デフォルト テーブルを再作成することでした:

/usr/bin/mysql --skip-grant-tables &
mysql -u root

次に、Linux ターミナルからルートとしてこれを実行してみました:

mysql_install_db

その後、以前の MySQL プロセスを強制終了し、MYSQL を正常に再起動しました:

ps -aux | grep mysql

そして、すべてのプロセスを -9 で終了します。

service mysqld restart

それでも問題が解決しない場合は、MySQL データ ディレクトリのアクセス許可を確認してください。何らかの理由で変更されている可能性があります。

最後のオプション:すべてのデータベースの完全な mysql ダンプを作成する 、mysql を完全に削除し、最初から再インストールしてください。

すべてのデータベースのバックアップを作成:

MYSQLPASS=putyourmysqlrootpasshere
for i in $(mysql -u root -p$MYSQLPASS -Bse 'show databases'); do mysqldump --opt -p$MYSQLPASS $i -c> /root/mysql-dump-$i.sql; done

バックアップが正常かどうかを確認してください:

ls -alh /root/mysql-dump*

MySQL サーバーを削除

yum remove mysql-server
rm /var/lib/mysql -rf

MYSQL サーバーを再インストール

yum install mysql-server
service mysql start

特権および mysql ユーザーと同様に、すべてのデータベースを手動で作成し、.sql バックアップを各データベースにダンプします。

結論

ご覧のとおり、これに対して私が見つけた唯一の解決策は、mysql を完全に削除して、最初から再インストールすることでした。しかし…MySQLエラーテーブル「mysql.servers」が存在しないエラーの他の修正を知っていますか?

さらに読む:

  • MySQL でテーブルが見つかりません
MySQL エラー テーブル 'mysql.servers' が存在しません 最終変更日:2016 年 12 月 1 日 Esteban Borges
Cent OS
  1. 破損したMysqlデータベーステーブルを修復する方法

  2. Pthread ミューテックス アサーション エラー

  3. 致命的なエラー:特権テーブルを開いたりロックしたりできません:テーブル 'mysql.host' が存在しません

  1. 負荷分散されたWebサーバーとMySQLサーバー

  2. エラー1130UbuntuServer 12.04でMysqlに接続していますか?

  3. mysql データベースの回復 - mysql/mysqldump がテーブル <database>.<tablename> を指定します (1146)

  1. エラー:ストアドプロシージャが存在しません

  2. MySQLでテーブルを削除する

  3. MySQL - エラー 1045 - アクセスが拒否されました