GNU/Linux >> Znalost Linux >  >> Cent OS

Tabulka chyb MySQL „mysql.servers“ neexistuje

Při pokusu o udělení oprávnění uživateli MySQL na prostém serveru CentOS 6.x se mi na konzole mysql zobrazila tato chyba:Tabulka chyb MySQL ‚mysql.servers‘ neexistuje

Byl jsem překvapen… první, co mě napadlo, bylo ‚databáze mysql se poškodila‘, a to byl skutečně problém. Tabulka mysql.user by na normálních instalacích MySQL rozhodně měla existovat, takže v instalaci MySQL se něco pokazilo.

Oprava chybové tabulky MySQL „mysql.servers“ neexistuje chyba

Zkuste zkontrolovat, zda existuje soubor mysql.user

use mysql;
select * from user;

První věc, kterou jsem se pokusil vyřešit tento problém, bylo přeinstalovat databázi mysql, abych znovu vytvořil všechny výchozí tabulky mysql počínaje MYSQL bez jakýchkoli oprávnění:

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

Pak to zkusil spustit jako root z terminálu Linux:

mysql_install_db

Poté ukončete předchozí proces MySQL a restartujte MYSQL normálně:

ps -aux | grep mysql

A zabijte -9 celý proces.

service mysqld restart

Pokud to váš problém nevyřeší, zkontrolujte oprávnění k datovému adresáři MySQL, možná se nějak změnila.

Poslední možnost:vytvořit úplný výpis mysql pro každou databázi , zcela odstraňte mysql a znovu jej nainstalujte od začátku.

Vytvořte zálohy každé databáze:

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

Zkontrolujte, zda jsou vaše zálohy v pořádku:

ls -alh /root/mysql-dump*

Odeberte server MySQL

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

Přeinstalujte server MYSQL

yum install mysql-server
service mysql start

Vytvořte všechny databáze ručně, stejně jako uživatelé s oprávněními a mysql, a poté zálohujte zálohy .sql do každé databáze.

Závěr

Jak jste viděli, jediné řešení, které jsem pro to našel, bylo úplně odstranit mysql a znovu nainstalovat od nuly. Nicméně… znáte nějakou jinou opravu chyby MySQL Error Table „mysql.servers“ neexistuje?

Další čtení:

  • MySQL nemůže najít tabulku 
Tabulka chyb MySQL „mysql.servers“ neexistuje byla naposledy upravena:1. prosince 2016 Estebanem Borgesem
Cent OS
  1. Vyvážené zatížení webových serverů a serverů MySQL

  2. Jak opravit poškozenou tabulku databáze MySQL

  3. Zrušte tabulky v MySQL

  1. MySQL - CHYBA 1045 - Přístup odepřen

  2. Závažná chyba:Nelze otevřít a zamknout tabulky oprávnění:Tabulka 'mysql.host' neexistuje

  3. Chyba Mysql datetime DEFAULT CURRENT_TIMESTAMP

  1. Chyba 1130 při připojování k Mysql na serveru Ubuntu 12.04?

  2. CHYBA:Uložená procedura neexistuje

  3. Obnovit databázi mysql - mysql/mysqldump poskytuje tabulku <database>.<tablename> neexistuje (1146)