Днес имах малко премеждие с един сървър. Поради неясна причина (предполагам лош рестарт) MySQL не иска да тръгне. В лога пише следното:
Apr 28 18:56:33 localhost mysqld[5831]: 090428 18:56:33 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/user.frm' Apr 28 18:56:33 localhost mysqld[5831]: 090428 18:56:33 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/user.frm' Apr 28 18:56:33 localhost mysqld[5831]: 090428 18:56:33 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect information in file: './mysql/user.frm'
Изглежда доста апокалиптично, нали? Тъй като не намерих конкретно предписание за спасяване на положението, импровизирах, като използвах информацията в документацията на MySQL и решението на проблема, което е описал Eric Gumtow във форума на mysql. Работата е там, че решението на Ерик изисква да създам наново потребителите, а мен ме мързеше да го направя. И така:
# cd /var/lib/mysql/mysql # mv user.* /root/ # mysql_install_db # cp /root/user.MYI ./ # cp /root/user.MYD ./ # myisamchk -r user.MYI # /etc/init.d/mysql start
Voila! Какво напарвих ли? Първо копирах вайловете на таблицата user (счупената таблица) на друго място, след това чрез скрипта mysql_install_db създадох наново таблицата, после копирах обратно файловете с данните и поправих таблицата чрез myisamchk.
Етикети: database, MySQL, recovery, база данни, възстановяване