У вас повреждена таблица; innodb_force_recovery
не предназначен для использования при обычном запуске MySQL, а innodb_force_recovery
имеет недопустимое значение, поэтому MySQL отказывается от запуска.
Из ваших журналов MySQL:
innodb_force_recovery
установлено недопустимое значение. Установка innodb_force_recovery
в 1 и запуск MySQL могут позволить вам восстановить таблицу вручную; однако MySQL не запускается нормально.
Начните со следующей команды:
/usr/sbin/mysqld --skip-grant-tables --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/HOSTNAME.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
Тогда сделайте:
# mysql
> use mylife;
> repair table wp_options;
> exit;
Теперь УДАЛИТЕ настройку innodb_force_recovery
. После этого вы сможете перезапустить MySQL.
Для справки см. mysql Innodb — таблица «пользователь» помечена как поврежденная и должна быть восстановлена
В случае, если MySQL не удается восстановить таблицу (маловероятно ), ИЛИ вы пытались восстановить файл таблицы вручную,вам нужно восстановить параметры таблицы wp _из дампа БД, прежде чем MySQL поднимется. Таблицы InnoDB не предназначены для восстановления в виде отдельных файлов таблиц, как MyISAM, это распространенная ошибка, которую люди делают снова и снова.
Соответствующие журналы:
InnoDB: !!! innodb_force_recovery is set to 3 !!!
[ERROR] /usr/sbin/mysqld: Table './mylife/wp_options' is marked as crashed and should be repaired
Кроме того, если вы используете опцию --skip-name-resolve
, вы должны делать свои гранты по IP-адресу, а не по DNS-имени, согласно следующим журналам. Имейте в виду, что это предупреждение и может быть остатком предыдущей настройки; однако из-за отсутствия лучшего контекста по вашему вопросу мы не можем быть уверены, что сказать об этом.
[Warning] 'user' entry 'root@v4452.vir.kagoya.net' ignored in --skip-name-resolve mode.
[Warning] 'user' entry '@v4452.vir.kagoya.net' ignored in --skip-name-resolve mode.
[Warning] 'proxies_priv' entry '@ root@v4452.vir.kagoya.net' ignored in --skip-name-resolve mode.
Что касается получения разных PID, если служба умирает/перезапускается, получение разных PID при каждом последующем запуске является нормальным поведением.
Мои эксперименты показывают, что часы, созданные для отслеживания процессорного времени каждого потока, попадают в категорию -часов процесса и, следовательно, не так легко доступны из других процессов. Это то, что я использовал, чтобы прийти к такому выводу
#include <errno.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <time.h>
int clockid(int tid) {
return -(2 | (tid << 3));
}
int main(int argc, char ** argv) {
int tid = (argc == 2) ? atoi(argv[1]) : gettid();
struct timespec tp;
if (clock_gettime(clockid(tid), &tp) == -1) {
printf("Error getting time (error no. %d)\n", errno);
exit(errno);
}
printf("Time: %ld\n", tp.tv_nsec);
return 0;
}