MySQL/MariaDB falha ao iniciar em um servidor Plesk para Linux: não é possível abrir e bloquear tabelas de privilégios
Imprimer- 0
Sintomas
- 
O MySQL/MariaDB falha ao iniciar devido às tabelas ausentes/corrompidas no banco de dados 'mysql'. As seguintes mensagens de erro aparecem em /var/log/mysqld.logou/var/log/mariadb/mariadb.log:[ERROR] Fatal error: Can't open and lock privilege tables: Incorrect file format '<table_name>' 
 [ERROR] Fatal error: Can't open and lock privilege tables: Table '<table_name>' doesn't exist 
 /usr/sbin/mysqld: Table '<table_name>' doesn't exist 
 [ERROR] Can't open the <table_name> table. Please run mysql_upgrade to create it.
 Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not load 
- 
O Plesk não está acessível com uma das seguintes mensagens de erro em um navegador da web: ERROR: PleskDBException: Unable to connect to database: mysql_connect(): No such file or directory /var/run/mysqld/mysqld.sock (Error code: 2002). Please check that database server is started and accessible. (Abstract.php:69) 
 ERROR: Uncaught exception 'Zend_Log_Exception' with message '"/var/log/plesk/panel.log" cannot be opened with mode "a"' in /usr/local/psa/admin/externals/Zend/Log/Writer/Stream.php:81 
 SQLSTATE[HY000] [2002] No such file or directory. 
Causa
As tabelas no mysql banco de dados estão ausentes ou corrompidas.
Resolução
- 
Conecte-se ao servidor Plesk via SSH . 
- 
Pare o serviço MariaDB/MySQL: # service mariadb stop 
 # service mysql stop 
- 
Adicione skip-grant-tablesaomy.cnfarquivo:3.1. Abra o my.cnfarquivo em um editor de texto. Neste exemplo, estamos usando o editor vi :- 
em distribuições baseadas em CentOS/RHEL # vi /etc/my.cnf 
- 
em distribuições baseadas em Debian/Ubuntu # vi /etc/mysql/my.cnf 
 3.2. Adicione a skip-grant-tablesdiretiva na[mysqld]seção:[mysqld] 
 skip-grant-tables3.3. Salve as alterações e feche o arquivo. 
- 
- 
Inicie o serviço MariaDB/MySQL: # service mariadb start # service mysql start 
- 
Crie um despejo de banco de dados do mysqlbanco de dados:# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -uadmin --skip-extended-insert mysql > /root/mysql_dump.`date +%F.%s`.sql 
- 
Mova o mysqldiretório para/root:# mv /var/lib/mysql/mysql/ /root 
- 
Liste todos os dumps diários do Plesk disponíveis ( a pasta de dumps padrão é /var/lib/psa/dumps):# ls -lat `cat /etc/psa/psa.conf | grep DUMP_D | grep -v "#" | awk '{print $2}'`/mysql.daily.dump* 
 -rw------- 1 root root 236253 Dec 3 01:51 /var/lib/psa/dumps/mysql.daily.dump.0.gz
 -rw------- 1 root root 229653 Jul 2 01:48 /var/lib/psa/dumps/mysql.daily.dump.1.gz
 -rw------- 1 root root 222485 Apr 1 01:56 /var/lib/psa/dumps/mysql.daily.dump.2.gz
- 
Restaure o mysqlbanco de dados do despejo diário mais recente do Plesk:# zcat /var/lib/psa/dumps/mysql.daily.dump.0.gz | sed -n '/-- Current Database: `mysql`/,/-- Current Database:*/p' | mysql -uadmin mysql 
- 
Remova a skip-grant-tablesdiretiva que foi adicionada na etapa 3.
- 
Inicie o serviço MariaDB/MySQL: # service mariadb restart 
 # service mysql restart 
 
				 
                
                
                
                
                
               