1146 table doesn t exist error 42s02

1146 table doesn t exist error 42s02

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

MySQL является наиболее часто используемым сервером баз данных в Linux, на котором размещаются и обрабатываются базы данных, а устранение ошибок, связанных с ним, является обычной задачей, которую мы выполняем.

Часто встречающаяся ошибка на сервере MySQL – “таблица 1146 не существует’. Сегодня мы увидим, что вызывает ошибку ‘таблица 1146 не существует’ в MySQL и как ее исправить.

Что вызывает ошибку MySQL ‘таблица 1146 не существует’

Ошибки таблицы MySQL возникают по многим причинам, основные из которых, с которыми мы столкнулись, включают:

  • Сбой InnoDB – при сбое сервера InnoDB из-за какой-либо загрузки процесса или злоупотребления пользователем, или если сервер не был перезапущен должным образом, он может быть поврежден и вызывать отображение ошибок таблицы.
  • Отсутствует файл ibdata в каталоге данных MySQL – в InnoDB есть словарь данных – файл ibdata и файлы журналов, которые имеют решающее значение для функционирования InnoDB. Если во время миграции или восстановления эти файлы пропадают, это может помешать правильному функционированию таблиц InnoDB.
  • Неправильно размещенные файлы .frm – В InnoDB таблицы имеют файлы ‘.frm’, которые определяют формат таблицы. Если эти файлы будут удалены или были пропущены при копировании в соответствующий каталог базы данных, то в таблицах могут отображаться ошибки.
  • Неправильные разрешения и права собственности на MySQL datadir – MySQL имеет каталог данных, обычно ‘/var / lib / mysql’, в котором хранятся базы данных. Если разрешение и владение этим каталогом недостаточно для доступа MySQL к нему, будут возникать ошибки.
  • Поврежденные таблицы или неправильные имена таблиц – если таблицы базы данных были повреждены из-за неправильного завершения работы сервера или неполных запросов, или если формат имени таблицы неверен, может отображаться ошибка ‘таблица 1146 не существует’.

Как исправить ошибку MySQL ‘таблица 1146 не существует’

Чтобы исправить ошибку ‘таблица 1146 не существует’, мы применяем различные методы после анализа основной причины ошибки.

  • Перезапустить сервер MySQL – Если ошибка произошла из-за неправильного завершения работы сервера или ошибок, связанных со службой MySQL, мы перезапускаем службу и проверяем, устраняет ли она проблему. Если служба не запускается должным образом, мы проводим дальнейшее расследование и исправляем ошибку.
  • Восстановить таблицы – в MySQL есть такие инструменты, как ‘myisamchk’, для восстановления поврежденных баз данных и таблиц.
  • Восстановление резервной копии – Восстановление резервных копий базы данных является последним средством для возвращения таблиц в рабочее состояние. Мы всегда настраиваем и поддерживаем резервные копии на серверах наших клиентов в актуальном состоянии, чтобы гарантировать отсутствие потери данных или простоев из-за неожиданных сбоев или ошибок.
  • Скопировать файл ibdata – Если файл ‘ibdata’ отсутствует, мы копируем его из резервной копии и восстанавливаем в каталог данных для MySQL, после удаления табличного пространства, чтобы избежать каких-либо повреждений или ошибок.
  • Аварийное восстановление InnoDB – В случае, если резервная копия неполная или файл ibdata также поврежден, мы все равно смогли восстановить таблицы с помощью наших экспертных методов аварийного восстановления. Прочитайте сообщение ‘Аварийное восстановление базы данных‘, чтобы узнать больше.

В Bobcares наши специалисты веб-поддержки 24/7 постоянно отслеживают все службы сервера и проводят упреждающий аудит сервера на предмет любых ошибок или повреждений в них.

Благодаря нашему систематическому подходу к отладке сервисных или других программных ошибок мы смогли предоставить клиентам захватывающий опыт поддержки.

Если вы хотели бы знать, как избежать простоев для ваших клиентов из-за ошибок или других сбоев в обслуживании, мы были бы рады поговорить с вами.

Ошибка: ERROR 1146 (42S02): Table ‘mysql.servers’ doesn’t exist

После обновления Mysql server на CentOS Linux получил ошибку при выполнении команды flush privileges.

Ошибка: ERROR 1146 (42S02): Table ‘mysql.servers’ doesn’t exist

Как исправить:

  1. Заходим в MySQL под пользователем root:

mysql -u root -p mysql

И создаем недостающую таблицу:

CREATE TABLE `servers` (`Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’MySQL Foreign Servers table’;

И делаем сброс привилегий:

flush privileges;

Должно появится сообщение: Query OK, 0 rows affected (0.00 sec)

Наталья Петрова
Оцените автора
Новости города Салавата
Добавить комментарий

Adblock
detector