Ошибка 1146 mysql как исправить
Перейти к содержимому

Ошибка 1146 mysql как исправить

  • автор:

Рабочий черновик

На Cenos 5 работает mysql-5.1.58. При попытке дать команду «flush privileges» вылезала следующая ошибка:

mysql> flush privileges;
ERROR 1146 (42S02): Table ‘mysql.servers’ doesn’t exist

В базе «mysql» не было таблицы «servers».

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+—————————+
| Tables_in_mysql |
+—————————+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+—————————+
17 rows in set (0.01 sec)

ошибка #1146 — Как создать запрашиваемую таблицу

Приветствую!
Помогите разобраться
при обращении к базам в phpMyAdmin возникает ошибка:
————————————————————————
SQL запрос:
SELECT MAX(version) FROM ‘bd_centraln’. ‘pma__tracking’ WHERE ‘db_name’=’bd_isait’ AND ‘table_name’=’wp_commentmeta’

Предполагаю, что причина возникновения — некорректное удаление базы данных ‘bd_centraln’ и других файлов этого сайта: сначала удалила файлы через проводник ,
а потом попробовала удалить ненужную БД в phpMyAdmin.
После этого, при обращении к другим БД все время возникает подобная ошибка.
‘bd_centraln’ — эта база не нужна

Понимаю, что налажала.
Как исправить и восстановить нормальную работу?

Массовая замена в БД MySQL+ошибка создания дампа 1146

Есть задача поменять все ссылки на сайте http://mysite.tomsk.ru (WordPress, FreeBSD) с вида: http://site1.tomsk.ru на вид: http://site2.tomsk.ru
Как это сделать наиболее эффективно?

1. посмотрим, какой пользователь и с какой БД работает для обеспечения функционирования сайта.
Для этого смотрим файл: /usr/local/www/my.site/wp-config.php
Там смотрим значения параметров: DB_NAME, DB_USER, DB_PASSWORD
Выяснили, что база даных — «mydb», пользователь MySQL- «myuser» с паролем «mypassword»
Сначала сделаем дамп БД:
# mysqldump -u myuser -pmypassword mydb > /path/to/file/mydb.dump.sql

И тут выходит ошибка 1146 «Table `table_name` doesn’t exist when using LOCK TABLES».
Гуглим, находим решение.
а) проверим и восстановим то, что можно в БД с помощью встроенной утилиты:
# mysqlcheck —user=myuser —password=mypassword —auto-repair —check —all-databases
смотрим ошибки — они выпадут как раз на те таблицы, которых нет, но MySQL думает, что они есть
б) входим в БД и работаем внутри БД:
# mysql -u myuser -p
mysql> show databases;
mysql> use mydb;
mysql> show tables;
mysql> drop table bad_table;
mysql> exit;

При удалении таблицы, которой на самом деле нет, а в списке таблиц она есть, MySQL будет выдавать ошибку, но зато он сделает себе «пометку», что на самом деле БД нет и дамп пройдет нормально.

2. Работа в phpmyadmin
Есть множество описаний, как его ставить, вот здесь, к примеру.
Допустим, он у нас уже установлен и доступен по адресу: http://mysite.tomsk.ru/pma
Заходим под пользователем myuser, выбираем базу mydb, выбираем в меню «Поиск», набираем запрос (выбрав все таблицы, где ищем) — см. рис.1

Рисунок 1 — Поиск значений, которые нужно заменить.

Затем мы получаем результаты (см. рис.2), видим, что все они сосредоточены в 1 таблице: wp_posts и нажимаем «Обзор», чтобы найти, в каком столбце (рис.3). Как правило, этот столбец: post_content

Рисунок 2- Результаты поиска.

Рисунок 3- Подробности результатов поиска.

Гуглим, как правильно сформировать замену с помощью SQL-запроса, находим пару статей (1,2). С помощью них, сформируем SQL-запрос, нужный нам:
UPDATE wp_posts SET post_content = REPLACE( `post_content`, ‘site1.tomsk.ru’, ‘site2.tomsk.ru’) WHERE 1
Должно быть, как примерно на рисунке 4.

Рисунок 4 — SQL-запрос на замену выражений в БД.

Для пробы можно нажать сначала «Имитировать запрос», чтобы посмотреть реакцию системы, если все нормально, жмем «Вперед» и получаем изменения выражений.
Идем на сайт, все проверяем.
Все должно работать, чего и впам желаю!

P.S. Если все в БД mydb поломали, возвращаем все из дампа:

# mysqldump -u myuser -pmypassword mydb

Ошибка #1146. Как исправить? Есть решение

При этом в карточке редактирования самого товара переключится на «новый раздел» можно, но тогда уже не дает зайти в саму вкладку товары. Пока опять не зайду в редактор товара и не переключу на старый режим.

Ошибка стала возникать после обновления до версии 2.7.1.727

12 комментариев

+2

Михаил Ушенин 30 ноября 2022 09:15 #

Выполните SQL-запросы в phpMyAdmin на хостинге для вашей базы данных:

CREATE TABLE `shop_presentation` ( `id` int(10) UNSIGNED NOT NULL, `parent_id` int(10) UNSIGNED DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `creator_contact_id` int(11) NOT NULL, `use_datetime` datetime DEFAULT NULL, `sort_column_id` int(10) UNSIGNED DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT '0', `sort_order` enum('asc','desc') NOT NULL DEFAULT 'asc', `view` enum('table','table_extended','thumbs') NOT NULL DEFAULT 'table', `rows_on_page` int(11) NOT NULL DEFAULT '30', `browser` varchar(64) DEFAULT NULL, `filter_id` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation` ADD PRIMARY KEY (`id`), ADD KEY `creator_contact_id` (`creator_contact_id`);

+1
Hiaolong 30 ноября 2022 13:10 #

Пустой результат

-1

replicant 30 ноября 2022 13:49 #

Вы же просто создали таблицу, которой не было, а затем сделали в ней индексы. Какие результаты ещё вы ожидали увидеть в phpmyadmin, выполняя такой запрос к базе данных? Если получилась новая пустая таблица, то это всё. Больше ничего этот запрос и не должен был делать.
Вы лучше повторите все старые действия, которые ранее приводили к ошибке, и расскажите изменилось ли что-то или всё осталось как было.

+1
Hiaolong 30 ноября 2022 18:09 #

Вроде ничего не изменилось

-1

replicant 30 ноября 2022 18:29 #

1364 — это не 1146. Уже определенно что-то изменилось. Может быть не установлен на вновь созданной таблице на колонке ID флаг AUTOINCREMENT. Надо поставить его через phpmyadmin. Полная картина запросов такая. У вас нет одного последнего запроса.

CREATE TABLE `shop_presentation` ( `id` int(10) UNSIGNED NOT NULL, `parent_id` int(10) UNSIGNED DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `creator_contact_id` int(11) NOT NULL, `use_datetime` datetime DEFAULT NULL, `sort_column_id` int(10) UNSIGNED DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT 0, `sort_order` enum('asc','desc') NOT NULL DEFAULT 'asc', `view` enum('table','table_extended','thumbs') NOT NULL DEFAULT 'table', `rows_on_page` int(11) NOT NULL DEFAULT 30, `browser` varchar(64) DEFAULT NULL, `filter_id` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation` ADD PRIMARY KEY (`id`), ADD KEY `creator_contact_id` (`creator_contact_id`); ALTER TABLE `shop_presentation` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

В итоге вот такая должна получиться структура у этой таблицы. Флаг на колонку можно поставить через интерфейс управления базой данных (Действие — Изменить) или запросом (см. выше)

+1
Hiaolong 1 декабря 2022 00:33 #

таблица как у вас на скрине есть, вроде все на месте Теперь как Вы и писали ругается на отсутствие shop_presentation_columns так же 1146 ошибка Ее по тому же принципу создавать как и shop_presentation ? В плане SQL запрос?

-1

replicant 1 декабря 2022 13:12 #

Да, создаете эту таблицу вот такими тремя запросами

CREATE TABLE `shop_presentation_columns` ( `id` int(10) UNSIGNED NOT NULL, `presentation_id` int(10) UNSIGNED NOT NULL, `column_type` varchar(64) NOT NULL, `width` int(11) DEFAULT NULL, `data` text DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT 0 ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation_columns` ADD PRIMARY KEY (`id`), ADD KEY `presentation_id` (`presentation_id`); ALTER TABLE `shop_presentation_columns` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

+1
Hiaolong 1 декабря 2022 20:26 #

И вновь ругается уже на Table . shop_filter’ doesn’t exist code 1146 (где троеточие там название аккаунта и сайта)

+1

Михаил Ушенин 2 декабря 2022 09:46 #

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *