Como reinicializar arquivos / var / lib / mysql?

15

Devido a um acidente, excluí todo o diretório / var / lib / mysql. Como o banco de dados não continha nada de importante, não quero passar pelo trabalho de restaurá-lo de um backup antigo, mas criar a estrutura de diretórios do zero. Como faço isso sem reinstalar o MySQL?

Konrad Gajewski
fonte

Respostas:

17

Você deve ser capaz de executar a mysql_install_dbpartir da linha de comando

mysql_install_db inicializa o diretório de dados do MySQL e cria as tabelas do sistema que ele contém, se elas não existirem. Ele também inicializa o espaço de tabela do sistema e as estruturas de dados relacionadas necessárias para gerenciar as tabelas do InnoDB. A partir do MySQL 5.6.8, o mysql_install_db é um script Perl e pode ser usado em qualquer sistema com o Perl instalado. Antes da versão 5.6.8, ele é um script de shell e está disponível apenas nas plataformas Unix.

Por favor, leia a documentação do MySQL na íntegra pormysql_install_db , então ...

DE UMA CHANCE !!!

Se não funcionar na primeira tentativa, faça isso

mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql 

então corra mysql_install_dbnovamente

RolandoMySQLDBA
fonte
Funcionou na primeira tentativa. Valeu. A senha é outro problema.
Konrad Gajewski
Veja minha publicação dba.stackexchange.com/questions/44645/…
RolandoMySQLDBA
você também pode precisar restorecon -r /var/lib/mysqlse o SELinux está habilitado
Mahmoud Mostafa
9

Para o MySQL 5.7> apenas:

# Move or remove the original dir
mv /var/lib/mysql /tmp/mysql

# Create a new dir
mkdir /var/lib/mysql

# Change owner to mysql (user and group)
chown -R mysql:mysql /var/lib/mysql

# Create MySQL initial data
mysqld --initialize
Cristian Deluxe
fonte
1
a única resposta que trabalhou para mim
Bahaa Odeh
mysql Ver 14,14 Distrib 5.7.22, para Linux (x86_64), utilizando invólucro editline
Bahaa Odeh