Как переинициализировать файлы / var / lib / mysql?

15

Из-за неудачи я удалил весь каталог / var / lib / mysql. Поскольку база данных не содержала ничего важного, я не хочу переживать из-за необходимости восстанавливать ее из старой резервной копии, а вместо этого создавать структуру каталогов с нуля. Как мне сделать это без переустановки MySQL?

Конрад Гаевский
источник

Ответы:

18

Вы должны быть в состоянии просто запустить mysql_install_dbиз командной строки

mysql_install_db инициализирует каталог данных MySQL и создает системные таблицы, которые он содержит, если они не существуют. Он также инициализирует системное табличное пространство и связанные структуры данных, необходимые для управления таблицами InnoDB. Начиная с MySQL 5.6.8, mysql_install_db является сценарием Perl и может использоваться в любой системе с установленным Perl. До 5.6.8 это сценарий оболочки и доступен только на платформах Unix.

Пожалуйста, полностью прочитайте документацию по MySQLmysql_install_db , а затем ...

ДАЙТЕ ЭТО ПОПРОБУЙТЕ !!!

Если это не работает с первой попытки, сделайте это

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

затем беги mysql_install_dbснова

RolandoMySQLDBA
источник
Сработало с первой попытки. Спасибо. Пароль - другая проблема.
Конрад Гаевский
Смотрите мой пост dba.stackexchange.com/questions/44645/…
RolandoMySQLDBA
Вам также может понадобиться, restorecon -r /var/lib/mysqlесли SELinux включен
Махмуд Мостафа
9

Для MySQL 5.7> просто:

# 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
Кристиан Делюкс
источник
1
единственный ответ, который сработал для меня
Бахаа Одех
mysql Ver 14.14 Distrib 5.7.22, для Linux (x86_64) с использованием оболочки EditLine
Bahaa Odeh