MySQL в CentOS не может запустить службу

MySQL в CentOS не может запустить службу

после перезагрузки сервера я не могу запустить mysql:

$ sudo service mysql start $ Starting MySQL. ERROR! Manager of pid-file quit without updating file.

"/var/log/mysqld.log" показывает: 150225 21:39:49 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 150225 21:39:49 [Note] Plugin 'FEDERATED' is disabled. /usr/local/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist 150225 21:39:49 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 150225 21:39:49 InnoDB: Initializing buffer pool, size = 8.0M 150225 21:39:49 InnoDB: Completed initialization of buffer pool InnoDB: Log scan progressed past the checkpoint lsn 0 37356 150225 21:39:49 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... InnoDB: Doing recovery: scanned up to log sequence number 0 44233 150225 21:39:49 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: Apply batch completed 150225 21:39:49 InnoDB: Started; log sequence number 0 44233 150225 21:39:49 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 150225 21:39:49 mysqld_safe mysqld from pid file /var/lib/mysql/iZ23aa67ovhZ.pid ended и мой жесткий диск не заполнен.

вот статус /var/lib/mysql: drwxrwxrwx 2 mysql root 4096 Feb 26 16:43 . drwxr-xr-x. 21 root root 4096 Feb 25 19:38 .. -rw-rw---- 1 mysql mysql 10485760 Feb 25 19:38 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Feb 26 16:43 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Feb 25 19:38 ib_logfile1 а вот /etc/my.cnf: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid и на сервере нет mysql_install_db: bash: mysql_install_db: command not found и когда я запускаю mysql_safe, он показывает: 150226 16:58:50 mysqld_safe Logging to '/var/log/mysqld.log'. 150226 16:58:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 150226 16:58:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

большое спасибо!

решение1

150225 21:39:49 [ОШИБКА] Фатальная ошибка: Невозможно открыть и заблокировать таблицы привилегий: Таблица «mysql.host» не существует

Чтобы исправить эту проблему, вам просто нужно указать mysql, где искать, а не перемещать установку по умолчанию. Вы можете сделать это с помощью:

mysql_install_db –user=mysql –ldata=/newlocation

как только вы это сделаете, вы можете перезапустить mysql

/etc/init.d/mysqld restart

Если это не поможет:

  1. Удалил mysql с помощьюyum remove mysql*
  2. Рекурсивно удалено /usr/bin/mysqlи/var/lib/mysql
  3. Также удалил файл/etc/my.cnf.rmp
  4. Используется ps -eдля проверки процессов, чтобы убедиться, что MySQL еще не запущен.
  5. Перезагрузил сервер сreboot
  6. Ran yum install mysql-server. Похоже, это также устанавливает клиент MySQL в качестве зависимости.
  7. предоставил MySQL права владения и групповые привилегии с chown -R mysql /var/lib/mysqlиchgrp -R mysql /var/lib/mysql
  8. Используется service mysqld startдля запуска MySQL Daemon.

150225 21:39:49 InnoDB: База данных не была нормально закрыта! InnoDB: Начало восстановления после сбоя. InnoDB: Чтение информации о табличном пространстве из файлов .ibd... InnoDB: Восстановление возможных полузаписанных страниц данных из буфера InnoDB: doublewrite...

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

В большинстве случаев InnoDB может восстановиться самостоятельно, без потери данных.

Чтобы начать восстановление, сначала вам нужно использовать директиву 'innodb_force_recovery' в /etc/my.cnf. Если вы не знакомы с этим, пожалуйста, прочтите следующую документацию,http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html. Если вы знакомы, пожалуйста, продолжайте.

Иногда InnoDB будет поврежден только умеренно и может восстановить себя. Добавьте «innodb_force_recovery = #» в новую строку в разделе [mysqld] файла /etc/my.cnf. Обязательно замените # на требуемую величину восстановления.Если вы попытаетесь использовать что-либо, превышающее величину 4, вы подвергнетесь огромному риску дальнейшей коррупции, а это значит, что ваше время и усилия будут потрачены впустую.В этом случае, поскольку мы пытаемся выполнить самовосстановление, используйте только 1 или 2. После добавления новой строки перезапустите сервер MySQL и проверьте журналы (/var/lib/mysql/server.hostname.com.err), чтобы убедиться, что экземпляр успешно восстановился.

Связанный контент