Можно ли получить время ЦП любого потока в Linux, вызвав clock _gettime?

У вас повреждена таблица; innodb_force_recoveryне предназначен для использования при обычном запуске MySQL, а innodb_force_recoveryимеет недопустимое значение, поэтому MySQL отказывается от запуска.

Из ваших журналов MySQL:

  • Параметры вашей таблицы БД WordPress /mylife/wp _помечены как поврежденные;
  • 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 при каждом последующем запуске является нормальным поведением.

0
18.03.2021, 15:35
1 ответ

Мои эксперименты показывают, что часы, созданные для отслеживания процессорного времени каждого потока, попадают в категорию -часов процесса и, следовательно, не так легко доступны из других процессов. Это то, что я использовал, чтобы прийти к такому выводу

#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;
}
0
19.03.2021, 19:52

Теги

Похожие вопросы