Webasyst ошибка 1146

1

1

Собственно код ошибки:

Не поймем что за таблицу требует?

Возникает ошибка при попытке переключится на «новый раздел товаров»

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

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

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

  • популярные
  • новые


  • +2

    Выполните 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

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



      • -1

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

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



        • +1

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



          • -1

            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

              таблица как у вас на скрине есть, вроде все на месте

              Теперь как Вы и писали ругается на отсутствие shop_presentation_columns так же 1146 ошибка

              Ее по тому же принципу создавать как и  shop_presentation ? В плане SQL запрос?



              • -1

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

                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

                  И вновь ругается уже на

                  Table … shop_filter’ doesn’t exist code 1146

                  (где троеточие там название аккаунта и сайта)



                  • +1

                    Напишите нам в службу поддержки — изучим ситуацию подробнее и попробуем предложить решение.



                    • +1

                      Спасибо, тех поддержка базу поправили.



                    • -1

                      У вас нет целой россыпи таблиц. Надо чинить базу (восполнять потери). Возможно при обновлении не создались нужные таблицы, либо что-то ещё пошло не так.

                      Напишите в службу ТП. Они вам помогут сделать коррекцию базы и проверят правильность обновления.

                      Конечно можно тут на форуме и дальше продолжать до тех пор, пока всё не пройдет (сравнить структуры БД, найти недостающие таблицы, сравнить версии ПО и т.д., потому что сама по себе эта процедура не сложная), но обращение в ТП однозначно поможет вам сэкономить время.

                      В вашей ситуации специалист, имеющий доступ и должные навыки, быстрее всё починит без лишних слов.



                    • 0

                      И ещё, раз пошла такая пляска, то проверьте наличие таблицы shop_presentation_columns. Вдруг потом ещё и на неё ругаться будет, если её нет. По логике она должна быть тоже и, если что-то пошло не так у вас при обновлении, то её может не оказаться на месте.

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

                      Форум поддержки
                      »
                      Вопросы и ответы

                      Здравствуйте!

                      Перенес сайт на новый хостинг. Появилась ошибка #1146. Не могу зайти в админку. Данная ошибка на всех страницах. очистить кэш не могу, в админке показывает то же самое. Как исправить?

                      3 ответа

                      • популярные
                      • новые


                      • 1

                        Welldi.ru

                        Welldi.ru
                        Партнер-эксперт
                        Партнер-разработчик

                        9 января 2017 17:29

                        #

                        Решение

                        Ошибка означает, что «таблица не создана в БД» — смотрите логи, что за таблица и от сюда ищите решение проблемы.

                        ответить



                        • +1

                          Александр

                          Александр

                          9 января 2017 17:44

                          #

                          А где точно нужно прописывать данные БД в движке? Интересует путь к файлу.

                          ответить



                      • 2

                        Welldi.ru

                        Welldi.ru
                        Партнер-эксперт
                        Партнер-разработчик

                        9 января 2017 18:25

                        #

                        /wa-config/db.php

                        ответить

                      Добавить ответ

                      Чтобы добавить комментарий, зарегистрируйтесь или войдите

                      А у меня вот такая штука появилась, тоже при открытии заказа. Ума не приложу, что с этим делать

                      Query Error 1292: Incorrect datetime value: '0000-00-00 00:00:00' for column 'create_datetime' at row 1 Query: ALTER TABLE `shop_set` ADD `json_params` TEXT NULL ## wa-system/database/waModel.class.php(266) #0 wa-system/database/waModel.class.php(321): waModel->run('ALTER TABLE `sh...') #1 wa-apps/shop/lib/updates/8.5/1569934004.php(7): waModel->exec('ALTER TABLE `sh...') #2 wa-system/config/waAppConfig.class.php(391): include('/home/t/tekssh/...') #3 wa-system/config/waAppConfig.class.php(341): waAppConfig->includeUpdate('/home/t/tekssh/...') #4 wa-apps/shop/lib/config/shopConfig.class.php(17): waAppConfig->checkUpdates() #5 wa-system/waSystem.class.php(102): shopConfig->checkUpdates() #6 wa-system/waSystem.class.php(1479): waSystem::getInstance('shop', Object(shopConfig), false) #7 wa-system/event/waEvent.class.php(155): wa('shop') #8 wa-system/event/waEvent.class.php(92): waEvent->runApps(Array, Array) #9 wa-system/waSystem.class.php(1417): waEvent->run(Array) #10 wa-system/webasyst/lib/actions/backend/webasystBackendHeader.action.php(91): waSystem->event('backend_push', Array) #11 wa-system/controller/waViewAction.class.php(188): webasystBackendHeaderAction->execute() #12 wa-system/helper/view.php(19): waViewAction->display() #13 wa-system/view/waViewHelper.class.php(59): wa_header(Array) #14 wa-cache/b39e30/apps/logs/templates/compiled/logs_ru_RU/ef/57/4a/ef574a615ba7f7344498b00c2f29cc60d3609ac4.file.Backend.html.php(116): waViewHelper->header() #15 wa-system/vendors/smarty3/sysplugins/smarty_internal_templatebase.php(186): content_60b39f86a43fa2_38263054(Object(Smarty_Internal_Template)) #16 wa-system/view/waSmarty3View.class.php(144): Smarty_Internal_TemplateBase->fetch('templates/layou...', NULL) #17 wa-system/layout/waLayout.class.php(162): waSmarty3View->fetch('templates/layou...') #18 wa-system/controller/waViewController.class.php(104): waLayout->display() #19 wa-system/controller/waViewController.class.php(47): waViewController->display() #20 wa-system/controller/waFrontController.class.php(263): waViewController->run(NULL) #21 wa-system/controller/waFrontController.class.php(190): waFrontController->runController(Object(waDefaultViewController), NULL) #22 wa-system/controller/waFrontController.class.php(84): waFrontController->execute(NULL, 'backend', 'files') #23 wa-system/controller/waDispatch.class.php(157): waFrontController->dispatch() #24 wa-system/controller/waDispatch.class.php(32): waDispatch->dispatchBackend('webasyst/logs/') #25 wa-system/waSystem.class.php(610): waDispatch->dispatch() #26 index.php(7): waSystem->dispatch() #27 {main}  2021-05-30 17:22:02 212.26.236.126 Query Error 1054: Unknown column 'json_params' in 'field list' Query: SELECT `json_params` FROM `shop_set` WHERE 0 ## wa-system/database/waModel.class.php(266) #0 wa-system/database/waModel.class.php(367): waModel->run('SELECT `json_pa...') #1 wa-apps/shop/lib/updates/8.5/1569934004.php(5): waModel->query('SELECT `json_pa...') #2 wa-system/config/waAppConfig.class.php(391): include('/home/t/tekssh/...') #3 wa-system/config/waAppConfig.class.php(341): waAppConfig->includeUpdate('/home/t/tekssh/...') #4 wa-apps/shop/lib/config/shopConfig.class.php(17): waAppConfig->checkUpdates() #5 wa-system/waSystem.class.php(102): shopConfig->checkUpdates() #6 wa-system/waSystem.class.php(1479): waSystem::getInstance('shop', Object(shopConfig), false) #7 wa-system/event/waEvent.class.php(155): wa('shop') #8 wa-system/event/waEvent.class.php(92): waEvent->runApps(Array, Array) #9 wa-system/waSystem.class.php(1417): waEvent->run(Array) #10 wa-system/webasyst/lib/actions/backend/webasystBackendHeader.action.php(91): waSystem->event('backend_push', Array) #11 wa-system/controller/waViewAction.class.php(188): webasystBackendHeaderAction->execute() #12 wa-system/helper/view.php(19): waViewAction->display() #13 wa-system/view/waViewHelper.class.php(59): wa_header(Array) #14 wa-cache/b39e30/apps/logs/templates/compiled/logs_ru_RU/ef/57/4a/ef574a615ba7f7344498b00c2f29cc60d3609ac4.file.Backend.html.php(116): waViewHelper->header() #15 wa-system/vendors/smarty3/sysplugins/smarty_internal_templatebase.php(186): content_60b39f86a43fa2_38263054(Object(Smarty_Internal_Template)) #16 wa-system/view/waSmarty3View.class.php(144): Smarty_Internal_TemplateBase->fetch('templates/layou...', NULL) #17 wa-system/layout/waLayout.class.php(162): waSmarty3View->fetch('templates/layou...') #18 wa-system/controller/waViewController.class.php(104): waLayout->display() #19 wa-system/controller/waViewController.class.php(47): waViewController->display() #20 wa-system/controller/waFrontController.class.php(263): waViewController->run(NULL) #21 wa-system/controller/waFrontController.class.php(190): waFrontController->runController(Object(logsBackendFileController), NULL) #22 wa-system/controller/waFrontController.class.php(84): waFrontController->execute(NULL, 'backend', 'file') #23 wa-system/controller/waDispatch.class.php(157): waFrontController->dispatch() #24 wa-system/controller/waDispatch.class.php(32): waDispatch->dispatchBackend('webasyst/logs/') #25 wa-system/waSystem.class.php(610): waDispatch->dispatch() #26 index.php(7): waSystem->dispatch() #27 {main}

                      Свежая установка на локалку (webasyst(83271a00d1ff8c7002b0a8591a9b4ee9)(1.7.4.142).framework). Не могу понять, что не так. Подскажите?

                      wa-logdb.log

                      2017-06-15 00:28:11 127.0.0.1
                      Table 'getfisher.wa_app_settings' doesn't exist
                      ## wa-system/database/waDbMysqliAdapter.class.php(280)
                      #0 wa-system/database/waDbMysqliAdapter.class.php(156): waDbMysqliAdapter->exception()
                      #1 wa-system/database/waModel.class.php(171): waDbMysqliAdapter->schema('wa_app_settings', false)
                      #2 wa-system/database/waModel.class.php(127): waModel->describe()
                      #3 wa-system/database/waModel.class.php(97): waModel->getFields()
                      #4 wa-system/database/waModel.class.php(77): waModel->getMetadata()
                      #5 wa-system/contact/waContact.class.php(63): waModel->__construct()
                      #6 wa-system/user/waUser.class.php(22): waContact->init()
                      #7 wa-system/user/waAuthUser.class.php(30): waUser->init()
                      #8 wa-system/user/waAuthUser.class.php(24): waAuthUser->init()
                      #9 wa-system/waSystem.class.php(238): waAuthUser->__construct(NULL, Array)
                      #10 wa-system/waSystem.class.php(279): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL)
                      #11 wa-system/waSystem.class.php(516): waSystem->getUser()
                      #12 wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/')
                      #13 index.php(7): waSystem->dispatch()
                      #14 {main}
                      
                      2017-06-15 00:28:11 127.0.0.1
                      Table 'getfisher.wa_app_settings' doesn't exist
                      ## wa-system/database/waDbMysqliAdapter.class.php(280)
                      #0 wa-system/database/waDbMysqliAdapter.class.php(156): waDbMysqliAdapter->exception()
                      #1 wa-system/database/waModel.class.php(171): waDbMysqliAdapter->schema('wa_app_settings', false)
                      #2 wa-system/database/waModel.class.php(127): waModel->describe()
                      #3 wa-system/database/waModel.class.php(97): waModel->getFields()
                      #4 wa-system/database/waModel.class.php(77): waModel->getMetadata()
                      #5 wa-system/auth/waAuth.class.php(43): waModel->__construct()
                      #6 wa-system/waSystem.class.php(213): waAuth->__construct(Array)
                      #7 wa-system/waSystem.class.php(380): waSystem->getFactory('auth', 'waAuth', Array)
                      #8 wa-system/user/waAuthUser.class.php(43): waSystem->getAuth()
                      #9 wa-system/user/waAuthUser.class.php(24): waAuthUser->init()
                      #10 wa-system/waSystem.class.php(238): waAuthUser->__construct(NULL, Array)
                      #11 wa-system/waSystem.class.php(279): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL)
                      #12 wa-system/waSystem.class.php(516): waSystem->getUser()
                      #13 wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/')
                      #14 index.php(7): waSystem->dispatch()
                      #15 {main}
                      
                      2017-06-15 00:28:11 127.0.0.1
                      Table 'getfisher.wa_contact' doesn't exist
                      ## wa-system/database/waDbMysqliAdapter.class.php(280)
                      #0 wa-system/database/waDbMysqliAdapter.class.php(156): waDbMysqliAdapter->exception()
                      #1 wa-system/database/waModel.class.php(171): waDbMysqliAdapter->schema('wa_contact', false)
                      #2 wa-system/database/waModel.class.php(127): waModel->describe()
                      #3 wa-system/database/waModel.class.php(97): waModel->getFields()
                      #4 wa-system/database/waModel.class.php(77): waModel->getMetadata()
                      #5 wa-system/auth/waAuth.class.php(236): waModel->__construct()
                      #6 wa-system/auth/waAuth.class.php(78): waAuth->_authByCookie()
                      #7 wa-system/user/waAuthUser.class.php(44): waAuth->isAuth()
                      #8 wa-system/user/waAuthUser.class.php(24): waAuthUser->init()
                      #9 wa-system/waSystem.class.php(238): waAuthUser->__construct(NULL, Array)
                      #10 wa-system/waSystem.class.php(279): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL)
                      #11 wa-system/waSystem.class.php(516): waSystem->getUser()
                      #12 wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/')
                      #13 index.php(7): waSystem->dispatch()
                      #14 {main}
                      

                      wa-logerror.log

                      2017-06-15 00:28:11 127.0.0.1
                      Uncaught exception waDbException:
                      Database error. See log for details. (1146)
                      ## wa-system/database/waDbMysqliAdapter.class.php(280)
                      #0 wa-system/database/waDbMysqliAdapter.class.php(156): waDbMysqliAdapter->exception()
                      #1 wa-system/database/waModel.class.php(171): waDbMysqliAdapter->schema('wa_contact', false)
                      #2 wa-system/database/waModel.class.php(127): waModel->describe()
                      #3 wa-system/database/waModel.class.php(97): waModel->getFields()
                      #4 wa-system/database/waModel.class.php(77): waModel->getMetadata()
                      #5 wa-system/auth/waAuth.class.php(236): waModel->__construct()
                      #6 wa-system/auth/waAuth.class.php(78): waAuth->_authByCookie()
                      #7 wa-system/user/waAuthUser.class.php(44): waAuth->isAuth()
                      #8 wa-system/user/waAuthUser.class.php(24): waAuthUser->init()
                      #9 wa-system/waSystem.class.php(238): waAuthUser->__construct(NULL, Array)
                      #10 wa-system/waSystem.class.php(279): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL)
                      #11 wa-system/waSystem.class.php(516): waSystem->getUser()
                      #12 wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/')
                      #13 index.php(7): waSystem->dispatch()
                      #14 {main}
                      

                      OpenServeruserdatalogsApache-PHP-7-x64_errora.log

                      [Thu Jun 15 00:35:51.970157 2017] [ssl:warn] [pid 1764:tid 492] AH01909: site-one.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:51.971160 2017] [ssl:warn] [pid 1764:tid 492] AH01909: site-two.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:51.972163 2017] [ssl:warn] [pid 1764:tid 492] AH01909: default:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:52.191147 2017] [ssl:warn] [pid 1764:tid 492] AH01909: site-one.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:52.191147 2017] [ssl:warn] [pid 1764:tid 492] AH01909: site-two.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:52.626205 2017] [ssl:warn] [pid 1764:tid 492] AH01909: default:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:52.666311 2017] [mpm_winnt:notice] [pid 1764:tid 492] AH00455: Apache/2.4.25 (Win64) OpenSSL/1.0.2j configured -- resuming normal operations
                      [Thu Jun 15 00:35:52.666311 2017] [mpm_winnt:notice] [pid 1764:tid 492] AH00456: Apache Lounge VC14 Server built: Dec 17 2016 11:15:57
                      [Thu Jun 15 00:35:52.666311 2017] [core:notice] [pid 1764:tid 492] AH00094: Command line: 'D:\openserver\modules\http\Apache-PHP-7-x64\bin\httpd.exe -d D:/OpenServer/modules/http/Apache-PHP-7-x64 -f d:\openserver\modules\http\Apache-PHP-7-x64\conf\httpd.conf'
                      [Thu Jun 15 00:35:52.675336 2017] [mpm_winnt:notice] [pid 1764:tid 492] AH00418: Parent: Created child process 5944
                      [Thu Jun 15 00:35:53.272233 2017] [ssl:warn] [pid 5944:tid 536] AH01909: site-one.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.273236 2017] [ssl:warn] [pid 5944:tid 536] AH01909: site-two.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.274241 2017] [ssl:warn] [pid 5944:tid 536] AH01909: default:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.460752 2017] [ssl:warn] [pid 5944:tid 536] AH01909: site-one.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.461756 2017] [ssl:warn] [pid 5944:tid 536] AH01909: site-two.loc:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.462758 2017] [ssl:warn] [pid 5944:tid 536] AH01909: default:443:0 server certificate does NOT include an ID which matches the server name
                      [Thu Jun 15 00:35:53.489465 2017] [mpm_winnt:notice] [pid 5944:tid 536] AH00354: Child: Starting 32 worker threads.

                      OpenServeruserdatalogsMySQL-5.7-x64_error.log

                      2017-06-14T21:35:51.500492Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
                      2017-06-14T21:35:51.500492Z 0 [Note] d:openservermodulesdatabaseMySQL-5.7-x64binmysqld.exe (mysqld 5.7.16) starting as process 4512 ...
                      2017-06-14T21:35:51.509516Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
                      2017-06-14T21:35:51.509516Z 0 [Note] InnoDB: Uses event mutexes
                      2017-06-14T21:35:51.509516Z 0 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
                      2017-06-14T21:35:51.509516Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
                      2017-06-14T21:35:51.510519Z 0 [Note] InnoDB: Number of pools: 1
                      2017-06-14T21:35:51.510519Z 0 [Note] InnoDB: Not using CPU crc32 instructions
                      2017-06-14T21:35:51.512524Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
                      2017-06-14T21:35:51.521549Z 0 [Note] InnoDB: Completed initialization of buffer pool
                      2017-06-14T21:35:51.681974Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
                      2017-06-14T21:35:52.099901Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
                      2017-06-14T21:35:52.100904Z 0 [Note] InnoDB: Setting file 'd:openserveruserdataMySQL-5.7-x64ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
                      2017-06-14T21:35:52.625202Z 0 [Note] InnoDB: File 'd:openserveruserdataMySQL-5.7-x64ibtmp1' size is now 12 MB.
                      2017-06-14T21:35:52.668317Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
                      2017-06-14T21:35:52.668317Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
                      2017-06-14T21:35:52.669320Z 0 [Note] InnoDB: Waiting for purge to start
                      2017-06-14T21:35:52.720222Z 0 [Note] InnoDB: 5.7.16 started; log sequence number 8783149
                      2017-06-14T21:35:52.721225Z 0 [Note] Plugin 'FEDERATED' is disabled.
                      2017-06-14T21:35:52.721225Z 0 [Note] InnoDB: Loading buffer pool(s) from d:openserveruserdataMySQL-5.7-x64ib_buffer_pool
                      2017-06-14T21:35:52.893683Z 0 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
                      2017-06-14T21:35:52.894686Z 0 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
                      2017-06-14T21:35:52.895689Z 0 [Note] Server socket created on IP: '127.0.0.1'.
                      2017-06-14T21:35:52.968884Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170615  0:35:52
                      2017-06-14T21:35:52.984928Z 0 [Note] Event Scheduler: Loaded 0 events
                      2017-06-14T21:35:52.984928Z 0 [Note] d:openservermodulesdatabaseMySQL-5.7-x64binmysqld.exe: ready for connections.
                      Version: '5.7.16'  socket: ''  port: 3306  MySQL Community Server (GPL)

                      • Главная
                      • Блог
                      • Поиск
                      • Контакты

                      Подробный поиск

                      Android

                      Apache

                      Bitrix CMS

                      Centos

                      Class

                      CSS

                      Debian

                      Delphi

                      Docker

                      Drupal

                      git

                      HTML

                      JavaScript

                      Joomla

                      JQuery

                      JQuery UI

                      Laravel

                      Linux

                      MODx

                      MTG

                      openCart

                      PHP

                      Python

                      raspberry pi 3 / arduino

                      regexp

                      Script / Tool

                      Smarty

                      Soft

                      SQL

                      WebAsyst (shop-script)

                      WordPress

                      Алгоритмы

                      Безопасность

                      Игры

                      Книги

                      Настройка / Конфиги

                      Сторонние сервисы

                      Управление проектами

                      Фильмы

                      01.06.2022

                      При попытке сменить пароль root пользователя mysql / mariadb (через mysql_secure_installation / mysql_secure_installation), получил ошибку «ERROR 1146 (42S02) at line 1: Table ‘mysql.global_priv’ doesn’t exist«

                       
                      Change the root password? [Y/n] Y
                      ERROR 1146 (42S02) at line 1: Table 'mysql.global_priv' doesn't exist
                      

                      Решение проблемы, запустить

                       
                      sudo mysql_upgrade
                      

                      Категории: Web, SQL, Настройка / Конфиги

                      Связанные материалы:

                      mysql_secure_installation: command not found

                      Яндекс.Метрика

                      Попытался сделать дамп (бэкап) БД через родную для MySQL утилиту mysqldump и получил ошибку:

                      Got error: 1146: Table `table_name` doesn't exist when using LOCK TABLES

                      Вместо table_name имя несуществующей таблицы. Т.е. сразу после введения в консоль/терминал команды:

                      mysqldump --user=root -p db_name > db_name.sql

                      получаю такую ошибку. Файл дампа создаётся, но он пустой, утилита mysqldump после выдачи этой ошибки перестаёт работать.

                      Попытки ухода от проблемы

                      Не стал обращать внимание на mysqldump и взял другие инструменты пытаясь убежать от проблемы, так сказать, решил применить альтернативные пути решения. Пробовал сделать дамп базы через менеджер баз данных phpMyAdmin и всё получилось, но при импорте (поднятии) дампа возникли ошибки. Так же пробовал сделать тамп через родной для MySQL графический менеджер БД MySQL Workbench, но он тоже стал ругаться и выдавать эту обишку ибо он так же пользуется утилитой командной строки mysqldump при экспорте БД. Пробовал экспортировать дамп БД так же при помощи Sypex Dumper, он сперва вроде работал, но потом тоже выдал аналогичную ошибку. Короче говоря зря я только тратил время с этими альтернативными инструментами работы с БД. Если не работает родной mysqldump, то и другие программы врядли помогут ибо с базой что-то не так и надо разбираться.

                      Попытки решения проблемы

                      Что же это за «doesn’t exist when using LOCK TABLES» такой. Придётся разобраться. Если перевести текст сообщения об ошибке, то в нём говорится примерно следующее: «Таблица `table_name` не существует при использовании команды LOCK TABLES». Т.е. не была найдена указанная таблица, что понятно, ведь её никто там не создавал и быть её не должно.

                      Если посмотреть базу через разные графические менеджеры БД вроде браузерного phpMyAdmin или десктопного MySQL Workbench, то такой таблицы в базе действительно нет и не должно быть, но СУБД MySQL почему-то считает, что она там есть или должна быть, однако если посмотреть базу через родной консольный менеджер БД mysql (MySQL monitor), то такая таблица там будет в общем списке таблиц. Надо разбираться.

                      Поискал ответы на свои вопросы в служебной таблице information_schema, но это ни к чему не привело. Сделал пакетную проверку и восстановление всех таблиц базы данных через родную утилиту mysqlcheck, но это не помогло. При проверке утилита так же нашла эту несуществующую таблицу и стала ругаться, что она не найдена, но работу доделала до конца:

                      Repairing tables
                      table_name
                      Error : Table 'table_name' doesn't exist
                      status : Operation failed

                      Решение проблемы

                      Воспользовался стандартным родным консольным менеджером БД, который так и называется mysql, он же полностью MySQL monitor. Зашёл под нужным пользователем БД, выбрал базу, вывел список таблиц базы и оказалось в этом списке действительно есть та самая несуществующая таблица, которая была указана в тексте сообщения об ошибке. Так же при попытке создать таблицу с таким именем получаешь сообщение об ошибке, что такая таблица уже существует. Решил посмотреть что же есть в этой таблице. Получил сообщение об ошибке, что такой таблицы не существует, что не удивительно, ведь её и не должно существовать, но СУБД MySQL считает, что она есть и выводит её в общем списке таблиц. Решил удалить эту таблицу и тоже получил сообщение, что такой таблицы нет и удалять нечего. После этого вновь запросил список всех таблиц базы данных и о чудо, это несуществующей таблицы в списке больше нет.

                      Таким образом, что бы решить проблему «Got error: 1146: Table `table_name` doesn’t exist when using LOCK TABLES» при работе с БД надо пользоваться родным консольным менеджером БД MySQL monitor (mysql). Попытайтесь сперва создать таблицу с таким именем и получите сообщеине об ошибке, что такая таблица уже есть в БД. Попытайтесь удалить эту таблицу и получите сообщение, что её и так нет. Во время одного из этих действий СУБД MySQL ещё раз проверит базу и убедится, что такой таблицы нет и вычеркнет её из мета информации БД, т.е. забудет про эту несуществующую таблицу, не будет выводить её в списке всех таблиц и не будет выводить эту ошикбу. Скорее всего проверка целостности базы происходит при попытке удаления этой несуществующей таблицы, поэтому пробовать создавать её и не нужно. Так же, возможно, пользоваться консольным MySQL monitor тоже не обязательно и можно послать SQL-запрос СУБД на удаление этой таблицы откуда удобно, просто в MySQL monitor эта таблица сперва отображается в общем списке а в остальных менеджерах баз данных не показывается. В общем точно не знаю что в моём алгоритме действий лишнее, а что необходимое, я лишь говорю как я решил эту проблему. Задача нетривиальная и попытаться воссоздать эту ошибку с целостностью базы ещё раз для учебных целей оказалось не просто. У меня был лишь один проход решения проблемы, поэтому, что точно её решило я не знаю.

                      Для тех кто всё ещё не понял, скажу кратко. Просто воспользуйетесь консольным MySQL monitor и через него попробуйте удалить эту несуществующую таблицу. При запросе удаления СУБД MySQL проверит базу, поймёт, что такой таблицы действительно нет и всё будет в порядке. Проблема решена, вот и всё.

                      На всякий случай прикладываю список консольных команд и SQL-запросов, которые я использовал в ходе решения этой проблемы. Хотел их писать сразу по ходу изложения, но решил, что это не нужно для тех кто и так знает, а для остальных (забывчивых) напишу список ниже, названия файлов, пользователей, таблиц и баз, естественно взяты для примера, подставляйте свои.

                      Для начала консольная команды.
                      Попытка сделать дамп базы через утилиту mysqldump:

                      mysqldump --user=root -p db_name > db_name.sql

                      Пакетная проверка и восстановление всех таблиц базы данных через родную утилиту mysqlcheck:

                      mysqlcheck --user=USER --password=PASSWORD --auto-repair --check --all-databases

                      Вход в консольный менеджер баз данных MySQL monitor с указанием данных:

                      mysql --user=USER --password=PASSWORD

                      Далее работает непосрдественно с БД, поэтому теперь пойдут SQL-запросы.
                      Просмотр всех доступных для пользователя (для просмотра) баз данных:

                      SHOW DATABASES;

                      Выбор необходимой рабочей базы данных для работы с ней:

                      USE <db_title>;

                      Просмотр всех доступных для пользователя таблиц выбранной базы данных:

                      SHOW TABLES;

                      Просмотр содержимого указанной таблицы (с лимитом записей/строк):

                      SELECT * FROM table_title LIMIT 100;

                      Удаление таблицы из базы данных:

                      DROP TABLE table_title;

                      Следует понимать, что несуществующая таблица, это ошибка структуры базы данных, т.е. надо копать в эту сторону, восстанавливать структуру БД, а не таблиц.

                      Если моё решение не помогло, то можно попробовать воспользоваться утилитой «innodb tools» (Percona Data Recovery Tool for InnoDB) (https://code.google(точка)com/archive/p/innodb-tools/). Ещё есть решение описанное здесь (http://adw0rd(точка)com/2009/07/02/recovery-innodb/), но там народ в комментариях говорит, что это не всегда помогает.

                      На этом все, всем спасибо за внимание.

                      Содержание

                      1. How to resolve MySQL ‘1146 table doesn’t exist’ errors in your server
                      2. What causes MySQL ‘1146 table doesn’t exist’ error
                      3. How to fix MySQL ‘1146 table doesn’t exist’ error
                      4. ERROR 1146 (42S02): Table ‘information_schema.SCHEMATA’ doesn’t exist #1047
                      5. Comments
                      6. Issue:
                      7. Expected behavior:
                      8. Reproduce:
                      9. Relevant Code:
                      10. Как устранить неисправность InnoDB в базе данных MySQL
                      11. Проблема
                      12. Причина
                      13. Решение
                      14. I. Принудительное восстановление InnoDB
                      15. II. Копирование содержимого таблицы
                      16. III. Восстановление таблицы InnoDB
                      17. IV. Восстановление из резервной копии

                      How to resolve MySQL ‘1146 table doesn’t exist’ errors in your server

                      In our role as Support Engineers for web hosts, we manage servers with various services such as web, database, mail, control panels, FTP, etc.

                      MySQL is the most commonly used database server in Linux hosting and handling the databases and resolving the errors associated with it, is a common task that we perform.

                      A commonly noticed error in MySQL server is ‘1146 table doesn’t exist’. Today we’ll see what causes this ‘1146 table doesn’t exist’ error in MySQL and how to fix it.

                      Error : Table ‘mysql.innodb_index_stats’ doesn’t exist
                      status : Operation failed

                      What causes MySQL ‘1146 table doesn’t exist’ error

                      MySQL table errors happen due to many reasons, the major ones we’ve come across include:

                      1. InnoDB crash – When the InnoDB server crash due to any process load or user abuse, or if the server was not restarted properly, it can get corrupt and cause table errors to show up.
                      2. Missing ibdata file in the MySQL datadir – InnoDB has a data dictionary – the ibdata file and log files, which are crucial for InnoDB to function. If during migrations or restorations, these files go missing, it can prevent InnoDB tables from functioning right.
                      3. Improperly placed .frm files – In InnoDB, tables have ‘.frm’ files that define the table format. If these files get deleted or were missed to copy over to the proper database directory, then the tables can show errors.
                      4. Incorrect permissions and ownership of MySQL datadir – MySQL has a data directory, usually ‘/var/lib/mysql’ that stores the databases. If the permission and ownership of this directory is not adequate for MySQL to access it, errors would occur.
                      5. Corrupt tables or improper table names – If the database tables got corrupt due to improper server shut down or incomplete queries, or if the table name format is not correct, the ‘1146 table doesn’t exist’ error may show up.

                      How to fix MySQL ‘1146 table doesn’t exist’ error

                      Inorder to fix the error ‘1146 table doesn’t exist’, we adopt different techniques, after analyzing the root cause of the error.

                      1. Restart MySQL server – If the error has happened due to improper server shut down or MySQL service related errors, we restart the service and check if it fixes the issue. If the service doesn’t start properly, we further investigate and fix the error.
                      2. Repair the tables – MySQL has tools such as ‘myisamchk’ to repair corrupt databases and tables.
                      3. Backup restore – Restoring database backups is the final resort to get the tables back to working condition. We always configure and maintain the backups in our customers’ servers up to date, inorder to ensure that there is no data loss or down time due to unexpected crashes or errors.
                      4. Copy ibdata file – If the ‘ibdata’ file is missing, we copy it from the backup and restore it to the data directory for MySQL, after discarding the tablespace to avoid any corruptions or errors.
                      5. InnoDB crash recovery – In case where the backup is incomplete or ibdata file is also corrupt, we’ve still been able to recover the tables via our expert crash recovery methods. Read the post ‘Database crash rescue‘ to know more.

                      [ Use your time to build your business. We’ll take care of your servers. Hire Our server experts to resolve and prevent server issues. ]

                      At Bobcares, our 24/7 Web Support Specialists constantly monitor all the services in the server and proactively audit the server for any errors or corruption in them.

                      With our systematic debugging approach for service or other software errors, we have been able to provide an exciting support experience to the customers.

                      If you would like to know how to avoid downtime for your customers due to errors or other service failures, we would be happy to talk to you.

                      Источник

                      ERROR 1146 (42S02): Table ‘information_schema.SCHEMATA’ doesn’t exist #1047

                      Issue:

                      What seems to be going wrong?

                      docker exec -it bash
                      mysql -u root -p
                      show databases;

                      Expected behavior:

                      What should be happening instead?

                      see available databases or none? isn’t the container supposed to create it by default?

                      Reproduce:

                      How might we be able to reproduce the error?

                      Relevant Code:

                      The text was updated successfully, but these errors were encountered:

                      I resolved this error by running:
                      mysql_upgrade -u root -p —force

                      However, the next error whilst try to migrate the schema versions of Laravel is:
                      SQLSTATE[HY000] [2054] Server sent charset unknown to the client. default character set utf8mb4 collate utf8mb4_unicode_ci.

                      It seems the problem has to do with a bug in the driver in the version of PHP that comes with laradock?
                      https://bugs.php.net/bug.php?id=74461

                      This bug seems to be resolved in PHP1.7.5.

                      Hi, was having the same issue, i run the mysql_upgrade you posted and now i’m able to see databases. But i still have an issue of connecting to the database via sequel pro, using credentials i changed in .env

                      Are you facing same issue and have you been able to solve it?

                      Have you tried to using host=mysql?

                      If you are using the laradock repo you can spin up phpmyadmin:
                      docker-compose up -d nginx mysql phpmyadmin
                      then you can browse phpmyadmin at: http://localhost:8080

                      I have added 127.0.0.1 mysql in my hosts file, base on some post i read.
                      i just used phpmyadmin wth the following credentials and it worked:
                      username: laradock
                      password: secret
                      database: zoo (Collation: utf8mb4_0900_ai_ci)

                      Then i have a php file which i have this code in it.
                      $con = mysqli_connect(«127.0.0.1″,»laradock»,»secret»,»zoo»); var_dump($con);

                      this is the result i get:
                      Warning: mysqli_connect(): (HY000/2002): Connection refused in.

                      When i use «mysql» instead of «127.0.0.1», i get:
                      Warning: mysqli_connect(): Server sent charset (255) unknown to the client.

                      Try downgrading the MySQL version from 8.0 to 5.7 5083426 then rebuild the container.

                      Hi @Mahmoudz, I try downgrading MySQL to 5.7 and rebuild, but when up docker-machine I receive this:

                      I did the following to get mine working:

                      1. Removed image $ docker rmi laradock_mysql
                      2. Remove container $ docker rm laradock_mysql
                      3. Located DATA_SAVE_PATH=

                      /.laradock/data in .env file

                    • Deleted mysql folder
                    • Modified laradock/mysql/Dockerfile
                      1. Buil docker-compeer up -d mysql nginx

                      I hope I didn’t miss anything in the steps.

                      Changing the mysql container version to 5.7 from 8.0 didn’t fix this for me.

                      After lots of faffing I decided to start from scratch. Before building the containers for the first time ensure you have set the mysql version at laradock/mysql/Dockerfile to 5.7 as described at #1047 (comment).

                      Setting the version from mysql 8.0 to 5.7 caused lots of issues. At the moment it’s quicker to set the version before starting the build process.

                      solution:

                      /.laradock/data/mysql warning: it will delete your mysql exist data

                    • docker-compose up —build mysql
                    • question:

                      for this issue,i know i need clear mysql old data when i change mysql version, so i exec docker-compose down -v , but the error still exist, i realize the mysql container not use docker volume system , so i checked docker-compose.yml ,In there, i found a question:

                      for laradock old version, mysql use docker volume save data, example:

                      so, who is using the volume mysql ? I hope I didn’t miss anything for this config. is that a bug? @Mahmoudz

                      Источник

                      Как устранить неисправность InnoDB в базе данных MySQL

                      Проблема

                      Причина

                      Повреждения InnoDB часто связаны с неисправностью оборудования. Сохранение поврежденных страниц происходит в результате сбоев питания или повреждений памяти. Также эта проблема может возникать, если вы храните базы данных InnoDB в сетевом хранилище (NAS).

                      Решение

                      Существует несколько способов восстановить MySQL:

                      I. Принудительное восстановление InnoDB

                      Остановите mysqld и сохраните резервную копию всех файлов, расположенных в папке /var/lib/mysql/:

                      Добавьте опцию innodb_force_recovery в раздел [mysqld] в /etc/my.cnf. Эта опция позволит вам запустить mysqld и создать дамп базы данных.

                      ПРИМЕЧАНИЕ. Вы можете увеличить эту опцию до 5 или 6 — пока не получите оптимальный дамп.

                      Запустите службу mysqld:

                      Создайте дамп всех баз данных:

                      Если при создании дампа возникла следующая ошибка:
                      Incorrect information in file: ‘xxxxxxxx.frm’ when using LOCK TABLES»`

                      увеличьте значение innodb_force_recovery и повторите попытку. Если вы не можете создать дамп баз данных, попробуйте использовать способ II (скопировать содержимое таблицы) или III (восстановить из резервной копии).

                      Остановите mysqld и удалите поврежденные данные:

                      Удалите опцию innodb_force_recovery из файла /etc/my.cnf и запустите mysqld:

                      В результате этого будет восстановлена главная база данных «mysql» и движок баз данных InnoDB.
                      Восстановите базы данных из дампа:

                      II. Копирование содержимого таблицы

                      Остановите mysqld и сохраните резервную копию всех файлов, расположенных в папке /var/lib/mysql/:

                      Добавьте опцию innodb_force_recovery в раздел [mysqld] в /etc/my.cnf. Эта опция позволит вам запустить mysqld и создать дамп базы данных.

                      Попробуйте создать копию:

                      Если получилось, удалите поврежденную таблицу и присвойте ее имя новой.

                      III. Восстановление таблицы InnoDB

                      Восстановление таблиц InnoDB необходимо в случае возникновения следующей ошибки

                      Или при попытке сделать дамп через mysqldump

                      Создать резервную копию через mysqldump не получится (из-за ошибки). Потребуется копирование файлов базы на уровне файловой системы:

                      Для того чтобы восстановить таблицы InnoDB, нам нужно узнать:

                      • узнать структуру таблиц
                      • иметь файлы с данными (имеется ввиду файлы на уровне файловой системы)

                      Таблица InnoDB на уровне файловой системы состоит из двух фалов:

                      • файл .frm хранит в себе структуру таблицы;
                      • файл .ibd собственно данные
                      • выяснить структуру поврежденной таблицы;
                      • создать новую базу;
                      • создать в новой базе таблицу нужной структуры;
                      • скопировать данные в новую таблицу из старой;
                      • если данные окажутся поврежденными, можно попробовать восстановить их используя утилиту innochecksum

                      Применяем утилиту чтения структуры таблицы:

                      Также желательно узнать кодировку старой базы:

                      Создаем новую базу:

                      Создаем таблицу по выводу утилиты чтения структуры поврежденной таблицы:

                      Далее копируем данные:

                      • Очищаем автоматически созданный файл
                      • Копируем файл с данными с поврежденной таблицы
                      • Импортируем данные
                      • Проверяем корректность чтения данных

                      Далее можно импортировать восстановленную таблицу или базу целиком.

                      IV. Восстановление из резервной копии

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

                      Источник

                      I am using windows XP. I am creating a table in phpMyAdmin using its built-in create table feature,
                      my database name is ddd.

                      It generates the following code:

                      CREATE TABLE  `ddd`.`mwrevision` (
                      
                      `asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
                      `sddd` INT NOT NULL
                      ) ENGINE = INNODB;
                      

                      and the following error shows up:

                      MySQL said:     
                      #1146 - Table 'ddd.mwrevision' doesn't exist 
                      

                      What might be the problem?

                      mins's user avatar

                      mins

                      5,87611 gold badges52 silver badges72 bronze badges

                      asked Jun 14, 2011 at 10:29

                      Shaheer's user avatar

                      9

                      I also had same problem in past. All had happend after moving database files to new location and after updating mysql server. All tables with InnoDB engine disappeared from my database. I was trying to recreate them, but mysql told me 1146: Table 'xxx' doesn't exist all the time until I had recreated my database and restarted mysql service.

                      I think there’s a need to read about InnoDB table binaries.

                      Rafael Barros's user avatar

                      answered Dec 7, 2011 at 4:43

                      sempasha's user avatar

                      sempashasempasha

                      6235 silver badges18 bronze badges

                      2

                      I had the same problem and can’t get a good tip for this over the web, so I shared this for you and for all who needs.

                      In my situation I copy a database (all files: frm, myd) to the data folder in MySQL data folder (using Wamp at home). All thing was OK until I want to create a table and have the error #1146 Table '...' doesn't exist!.

                      I use Wamp 2.1 with MySQL version 5.5.16.

                      My solution:

                      1. Export the database to file;

                      2. verify if exported file is really OK!!;

                      3. drop the database where I have issues;

                      4. create a new database with the same name that the last;

                      5. import the file to the database.

                      FOR ME IS PROBLEM SOLVED. Now I can create tables again without errors.

                      Rafael Barros's user avatar

                      answered Jan 24, 2012 at 6:30

                      carlos's user avatar

                      carloscarlos

                      1111 silver badge2 bronze badges

                      1

                      Restarting MySQL works fine for me.

                      answered Nov 2, 2014 at 18:24

                      Muhammad Usman's user avatar

                      Muhammad UsmanMuhammad Usman

                      10.2k22 gold badges71 silver badges107 bronze badges

                      0

                      In my case I ran this command even if the table wasn’t visible in PhpMyAdmin :

                      DROP TABLE mytable

                      then

                      CREATE TABLE....

                      Worked for me !

                      answered May 21, 2015 at 9:22

                      Jim 007's user avatar

                      Jim 007Jim 007

                      2201 gold badge3 silver badges8 bronze badges

                      1

                      Check filenames.

                      You might need to create a new database in phpmyadmin that matches the database you’re trying to import.

                      Mayur Birari's user avatar

                      Mayur Birari

                      5,8278 gold badges33 silver badges61 bronze badges

                      answered Nov 21, 2012 at 15:23

                      blarg's user avatar

                      blargblarg

                      3,72310 gold badges40 silver badges69 bronze badges

                      2

                      I had the same problem. I tried to create a table in mysql and got the same error. I restarted mysql server and ran the command and was able to create/migrate table after restating.

                      answered May 10, 2013 at 11:10

                      thekosmix's user avatar

                      thekosmixthekosmix

                      1,68521 silver badges33 bronze badges

                      Today i was facing same problem. I was in very difficult situation but what id did i create a table with diffrent name e.g (modulemaster was not creating then i create modulemaster1) and after creating table i just do the rename table.

                      answered Jun 12, 2013 at 11:57

                      Vipin Gurjar's user avatar

                      I encountered the same problem today. I was trying to create a table users, and was prompted that ERROR 1146 (42S02): Table users doesn't exist, which did not make any sense, because I was just trying to create the table!!

                      I then tried to drop the table by typing DROP TABLE users, knowing it would fail because it did not exist, and I got an error, saying Unknown table users. After getting this error, I tried to create the table again, and magically, it successfully created the table!

                      My intuition is that I probably created this table before and it was not completely cleared somehow. By explicitly saying DROP TABLE I managed to reset the internal state somehow? But that is just my guess.

                      In short, try DROP whatever table you are creating, and CREATE it again.

                      answered Apr 6, 2015 at 17:51

                      Xin's user avatar

                      XinXin

                      4,2124 gold badges18 silver badges15 bronze badges

                      As pprakash mentions above, copying the table.frm files AND the ibdata1 file was what worked for me.

                      In short:

                      1. Shut your DB explorer client (e.g. Workbench).
                      2. Stop the MySQL service (Windows host).
                      3. Make a safe copy of virtually everything!
                      4. Save a copy of the table file(s) (eg mytable.frm) to the schema data folder (e.g. MySQL Server/data/{yourschema}).
                      5. Save a copy of the ibdata1 file to the data folder (i.e., MySQL Server/data).
                      6. Restart the MySQL service.
                      7. Check that the tables are now accessible, queryable, etc. in your DB explorer client.

                      After that, all was well. (Don’t forget to backup if you have success!)

                      Community's user avatar

                      answered Aug 17, 2016 at 23:46

                      SteveCinq's user avatar

                      SteveCinqSteveCinq

                      1,8901 gold badge16 silver badges22 bronze badges

                      Column names must be unique in the table. You cannot have two columns named asd in the same table.

                      answered Jun 14, 2011 at 10:32

                      Oswald's user avatar

                      OswaldOswald

                      30.9k3 gold badges43 silver badges68 bronze badges

                      8

                      run from CMD & %path%=set to mysql/bin

                      mysql_upgrade -u user -ppassword

                      answered Jun 14, 2011 at 11:04

                      Ravi Parekh's user avatar

                      Ravi ParekhRavi Parekh

                      4,9489 gold badges43 silver badges57 bronze badges

                      2

                      Recently I had same problem, but on Linux Server. Database was crashed, and I recovered it from backup, based on simply copying /var/lib/mysql/* (analog mysql DATA folder in wamp). After recovery I had to create new table and got mysql error #1146. I tried to restart mysql, and it said it could not start. I checked mysql logs, and found that mysql simply had no access rigths to its DB files. I checked owner info of /var/lib/mysql/*, and got 'myuser:myuser' (myuser is me). But it should be 'mysql:adm' (so is own developer machine), so I changed owner to ‘mysql:adm’. And after this mysql started normally, and I could create tables, or do any other operations.

                      So after moving database files or restoring from backups check access rigths for mysql.

                      Hope this helps…

                      thvwns's user avatar

                      thvwns

                      3,5383 gold badges43 silver badges57 bronze badges

                      answered Aug 23, 2013 at 8:32

                      vlad's user avatar

                      The reason I was facing this was because I had two «models.py» files which contained slightly different fields.
                      I resolved it by:

                      1. deleting one of the models.py files
                      2. correcting references to the deleted file
                      3. then running manage.py syncdb

                      answered Nov 11, 2013 at 7:02

                      Amey's user avatar

                      I got this issue after copying mytable.idb table file from another location. To fix this problem I did the following:

                      ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
                      

                      Copy mytable.idb

                      ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
                      

                      Restart MySql

                      answered Apr 13, 2014 at 20:34

                      l0pan's user avatar

                      l0panl0pan

                      4667 silver badges11 bronze badges

                      1

                      I had the same issue. It happened after windows start up error, it seems some files got corrupted due to this. I did import the DB again from the saved script and it works fine.

                      answered Oct 31, 2014 at 22:51

                      Ayman Al-Absi's user avatar

                      I had this problem because of a trigger not working..Worked after I deleted the trigger.

                      answered Aug 2, 2016 at 12:21

                      DauleDK's user avatar

                      DauleDKDauleDK

                      2,9297 gold badges51 silver badges90 bronze badges

                      In my case, MySQL’s parameter; lower_case_table_names was configured = 0.

                      It causes queries related with using upper cases will not work.

                      answered Aug 9, 2017 at 6:25

                      hiropon's user avatar

                      hiroponhiropon

                      1,6152 gold badges18 silver badges41 bronze badges

                      For me it was a table name upper/lower case issue. I had to make sure that table case name matched in a delete query, table notifications was not the same as Notifications. I fixed it by matching table name case with query and what MySQLWorkbench reported.

                      What is wierd is that this error showed up in a worked sql statement. Don’t know what caused this case sensitivity. Perhaps an auto AWS RDS update.

                      answered Mar 16, 2018 at 15:43

                      Kahitarich's user avatar

                      KahitarichKahitarich

                      3752 silver badges7 bronze badges

                      if you are modifying mysql bin->data dir’s and after that, your database import will not works

                      so you need to close wamp and after that start wamp

                      now database import will work fine

                      answered Jan 15, 2021 at 19:03

                      Hassan Saeed's user avatar

                      Hassan SaeedHassan Saeed

                      5,8511 gold badge33 silver badges37 bronze badges

                      Make sure you do not have a trigger that is trying to do something with the table mentioned in the error. I was receiving Error Code: 1146. Table 'exampledb.sys_diagnotics' doesn't exist on insert queries to another table in my production database. I exported the table schemas of my production database then searched for instances of exampledb.sys_diagnotics the schema SQL and found a debugging insert statement I had added to a table trigger in my development environment but this debug statement had been copied to production. The exampledb.sys_diagnotics table was not present on my production database. The error was resolved by removing the debug statement in my table trigger.

                      answered May 4, 2022 at 19:33

                      w. Patrick Gale's user avatar



                      Я использую windows XP. Я создаю таблицу в phpMyAdmin с помощью встроенной функции create table,
                      мое имя базы данных — ddd.

                      Он генерирует следующий код:

                      CREATE TABLE  `ddd`.`mwrevision` (

                      `asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
                      `sddd` INT NOT NULL
                      ) ENGINE = INNODB;

                      И появляется следующая ошибка:

                      MySQL said:     
                      #1146 - Table 'ddd.mwrevision' doesn't exist

                      В чем может быть проблема?


                      2545  


                      18  

                      18 ответов:

                      У меня тоже была такая же проблема в прошлом. Все произошло после перемещения файлов базы данных в новое место и после обновления сервера mysql. Все таблицы с движком InnoDB исчезли из моей базы данных. Я пытался воссоздать их, но mysql все время говорил мне 1146: Table 'xxx' doesn't exist, пока я не воссоздал свою базу данных и не перезапустил службу mysql.

                      Я думаю, что есть необходимость прочитать о двоичных файлах таблиц InnoDB.

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

                      В моей ситуации я копирую базу данных (все файлы: frm, myd) в папку данных в папке данных MySQL (используя Wamp дома). Все было в порядке, пока я не хочу создать таблицу и иметь ошибку #1146 Table '...' doesn't exist!.

                      Я использую Wamp 2.1 с MySQL версии 5.5.16.

                      Мое решение:

                      1. Экспорт базы данных в файл;

                      2. Проверьте, экспортируется ли файл действительно в порядке!!;

                      3. Удалите базу данных, где у меня есть проблемы;

                      4. Создайте новую базу данных с тем же именем, что и предыдущая;

                      5. Импортируйте файл в базу данных.

                      ДЛЯ МЕНЯ ПРОБЛЕМА РЕШЕНА. Теперь я могу снова создавать таблицы без ошибок.

                      В моем случае я выполнил эту команду, даже если таблица не была видна в PhpMyAdmin:

                      DROP TABLE mytable

                      Затем

                      CREATE TABLE....

                      Работал на меня !

                      Перезапуск MySQL работает нормально для меня.

                      Проверьте имена файлов.

                      Возможно, вам потребуется создать новую базу данных в phpmyadmin, которая соответствует базе данных, которую вы пытаетесь импортировать.

                      У меня была та же проблема. Я попытался создать таблицу в mysql и получил ту же ошибку. Я перезапустил сервер mysql и запустил команду, и смог создать / перенести таблицу после пересчета.

                      Сегодня я столкнулся с той же проблемой. Я был в очень сложной ситуации, но какой id я создал таблицу с другим именем, например (modulemaster не создавал, тогда я создаю modulemaster1), и после создания таблицы я просто делаю переименование таблицы.

                      Я сегодня столкнулся с той же проблемой. Я пытался создать таблицу users, и мне было предложено это ERROR 1146 (42S02): Table users doesn't exist, что не имело никакого смысла, потому что я просто пытался создать таблицу!!

                      Затем я попытался отбросить таблицу, набрав DROP TABLE users, зная, что она не будет работать, потому что ее не существует, и я получил ошибку, сказав Unknown table users. После получения этой ошибки, я попытался создать таблицу снова, и волшебным образом, он успешно создал таблицу!

                      Моя интуиция подсказывает, что я, вероятно, создал это стол до этого так и не был полностью убран каким-то образом. Явно говоря DROP TABLE, мне удалось каким-то образом сбросить внутреннее состояние? Но это только мое предположение.

                      Короче говоря, попробуйте отбросить любую таблицу, которую вы создаете, и создать ее снова.

                      As pprakash упоминает выше, копируя таблицу .файлы frm и файл ibdata1 были тем, что работало для меня. (Я бы просто прокомментировал этот комментарий, но это требование SO для 50 пунктов означает, что я должен предоставить решение, даже если это просто повторение существующего … странный.)

                      Короче говоря:

                      1. Закрой свой клиент проводнике выделенного текста(например, верстак).
                      2. остановите службу MySQL (хост Windows).
                      3. сделайте безопасную копию практически все!
                      4. сохраните копию файла(ов) таблицы (например, mytable.frm ) в папку данных схемы (например, MySQL Server / data / {yourschema}).
                      5. сохраните копию файла ibdata1 в папке data (т. е. MySQL Server/data).
                      6. перезагрузите службу MySQL.
                      7. убедитесь, что таблицы теперь доступны, доступны для запросов и т. д. В вашем клиенте проводника БД.

                      После этого все было хорошо. (Не забудьте сделать резервную копию, если у вас есть успех!)

                      Имена столбцов в таблице должны быть уникальными. В одной таблице не может быть двух столбцов с именем asd.

                      Выполнить из CMD & % path%=установить в mysql / bin

                      mysql_upgrade -u user -ppassword

                      Недавно у меня была такая же проблема, но на сервере Linux. База данных была разбита, и я восстановил ее из резервной копии, основанной на простом копировании /var/lib/mysql/* (аналоговая папка данных mysql в wamp). После восстановления я должен был создать новую таблицу и получил ошибку mysql #1146. Я попытался перезапустить mysql, и он сказал, что не может начать. Я проверил журналы mysql и обнаружил, что mysql просто не имел доступа к своим файлам DB. Я проверил информацию о владельце /var / lib / mysql/* и получил 'myuser:myuser' (мой пользователь-это я). Но он должен быть 'mysql:adm' (таков собственный машина разработчика), поэтому я сменил владельца на «mysql: adm». И после этого mysql начал нормально работать, и я мог создавать таблицы или делать любые другие операции.

                      Поэтому после перемещения файлов базы данных или восстановления из резервных копий проверьте доступ rigths для mysql.

                      Надеюсь, это поможет…

                      Причина, по которой я столкнулся с этим, заключалась в том, что у меня было два «models.py-файлы, которые содержали несколько иные поля.
                      Я решил ее следующим образом:

                      1. удаление одного из models.py файлы
                      2. исправление ссылок на удаленный файл
                      3. затем запуск manage.py syncdb

                      Я получил эту проблему после копирования mytable.файл таблицы idb из другого места. Чтобы устранить эту проблему, я сделал следующее:

                      ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
                      

                      Скопируйте mytable.idb

                      ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
                      

                      Перезапустить MySql

                      У меня была та же проблема. Это произошло после ошибки запуска windows, кажется, некоторые файлы были повреждены из-за этого. Я снова импортировал БД из сохраненного скрипта, и он работает нормально.

                      У меня была эта проблема из-за того, что триггер не работал..Сработало после того, как я удалил триггер.

                      В моем случае параметр MySQL; lower_case_table_names был настроен = 0.

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

                      Для меня это была проблема верхнего/нижнего регистра имени таблицы. Я должен был убедиться, что имя случая таблицы совпадает в запросе на удаление, таблица notifications не была такой же, как Notifications. Я исправил это, сопоставив имя таблицы case с запросом и тем, что сообщил MySQLWorkbench.

                      Что такое wierd, так это то, что эта ошибка появилась в рабочей инструкции sql. Не знаю, что вызвало такую чувствительность к делу. Возможно, автоматическое обновление AWS RDS.

                      In our role as Support Engineers for web hosts, we manage servers with various services such as web, database, mail, control panels, FTP, etc.

                      MySQL is the most commonly used database server in Linux hosting and handling the databases and resolving the errors associated with it, is a common task that we perform.

                      A commonly noticed error in MySQL server is ‘1146 table doesn’t exist’. Today we’ll see what causes this ‘1146 table doesn’t exist’ error in MySQL and how to fix it.

                      Error : Table ‘mysql.innodb_index_stats’ doesn’t exist
                      status : Operation failed

                      What causes MySQL ‘1146 table doesn’t exist’ error

                      MySQL table errors happen due to many reasons, the major ones we’ve come across include:

                      1. InnoDB crash – When the InnoDB server crash due to any process load or user abuse, or if the server was not restarted properly, it can get corrupt and cause table errors to show up.
                      2. Missing ibdata file in the MySQL datadir – InnoDB has a data dictionary – the ibdata file and log files, which are crucial for InnoDB to function. If during migrations or restorations, these files go missing, it can prevent InnoDB tables from functioning right.
                      3. Improperly placed .frm files – In InnoDB, tables have ‘.frm’ files that define the table format. If these files get deleted or were missed to copy over to the proper database directory, then the tables can show errors.
                      4. Incorrect permissions and ownership of MySQL datadir – MySQL has a data directory, usually ‘/var/lib/mysql’ that stores the databases. If the permission and ownership of this directory is not adequate for MySQL to access it, errors would occur.
                      5. Corrupt tables or improper table names – If the database tables got corrupt due to improper server shut down or incomplete queries, or if the table name format is not correct, the ‘1146 table doesn’t exist’ error may show up.

                      [ You don’t have to lose your sleep over server errors. Our expert server support specialists monitor & maintain your servers 24/7/365 and keep them rock solid. ]

                      How to fix MySQL ‘1146 table doesn’t exist’ error

                      Inorder to fix the error ‘1146 table doesn’t exist’, we adopt different techniques, after analyzing the root cause of the error.

                      1. Restart MySQL server – If the error has happened due to improper server shut down or MySQL service related errors, we restart the service and check if it fixes the issue. If the service doesn’t start properly, we further investigate and fix the error.
                      2. Repair the tables – MySQL has tools such as ‘myisamchk’ to repair corrupt databases and tables.  
                      3. Backup restore – Restoring database backups is the final resort to get the tables back to working condition. We always configure and maintain the backups in our customers’ servers up to date, inorder to ensure that there is no data loss or down time due to unexpected crashes or errors.
                      4. Copy ibdata file – If the ‘ibdata’ file is missing, we copy it from the backup and restore it to the data directory for MySQL, after discarding the tablespace to avoid any corruptions or errors.
                      5. InnoDB crash recovery – In case where the backup is incomplete or ibdata file is also corrupt, we’ve still been able to recover the tables via our expert crash recovery methods. Read the post ‘Database crash rescue‘ to know more.

                      [ Use your time to build your business. We’ll take care of your servers. Hire Our server experts to resolve and prevent server issues. ]

                      At Bobcares, our 24/7 Web Support Specialists constantly monitor all the services in the server and proactively audit the server for any errors or corruption in them.

                      With our systematic debugging approach for service or other software errors, we have been able to provide an exciting support experience to the customers.

                      If you would like to know how to avoid downtime for your customers due to errors or other service failures, we would be happy to talk to you.

                      var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

                      Понравилась статья? Поделить с друзьями:
                    • Webasyst internal server error 500
                    • Webasto список ошибок
                    • Webasto ошибки один длинный пять коротких
                    • Webasto ошибка преждевременное обнаружение пламени
                    • Webasto ошибка низкое напряжение