Ответ 1
Я использую MySQL версии 5.5.9 для MAC. Я исправил эту проблему, выполнив:
mysql_upgrade -uroot -p
Я начинаю использовать инструмент Workbench MySQL специально для моделирования данных. Итак, первым, что я хотел бы сделать, является обратное проектирование моей существующей базы данных на веб-сервере. Но я не могу завершить процесс, потому что я всегда получаю это странное сообщение об ошибке:
Error: Cannot load from mysql.proc. The table is probably corrupted
Я попытался отремонтировать эту таблицу, но это не помогло мне. Итак, есть ли у вас опыт в этой проблеме и знаете, как ее решить?
Я использую MySQL версии 5.5.9 для MAC. Я исправил эту проблему, выполнив:
mysql_upgrade -uroot -p
Я использую MySQL через MAMP Pro, и ответ Кевина не работает для меня. Да, мне пришлось выполнить mysql upgrade, но мне пришлось использовать следующие команды в терминале:
/Applications/MAMP/bin/repairMysql.sh
/Applications/MAMP/bin/upgradeMysql.sh
Это сработало для меня. Надеюсь, это может быть полезно кому-то другому.
Я использовал XAMPP в CentOS и вручную обновил XAMPP, кроме существующей папки данных. С новым серверным программным обеспечением MySQL и старыми файлами базы данных я получил ту же ошибку.
Я сделал это решение и отлично работал:
cd /opt/lampp/bin
./mysql_upgrade -uroot -p
Он зациклился почти на всех таблицах в системе, но закончился с исправленной проблемой.
В Windows с XAMPP мне удалось исправить проблему, перейдя в каталог:
C:\xampp\mysql\bin
и запустите исполняемый файл mysql_upgrade.exe
, который вы найдете внутри, убедитесь, что ваш сервер mysql запущен.
Я использую MAMP для Mac и не смог обновить свои базы данных с помощью командной строки, как было предложено выше, но это сработало, когда я использовал опции меню MAMP PRO- > TOOLS (вверху экрана OS X) для "Проверить", "Восстановить", и 'Upgrade'.
Я предполагаю, что GUI поставляет основные инструменты CLI с необходимыми параметрами, так что вам не нужно думать о том, что эти параметры должны быть (в отличие от запуска инструментов CLI вручную).
Модернизировав мой MAMP таким образом (через MAMP PRO GUI Tools), мое (отдельное) приложение Oracle mysqlWorkbench 6.0 прекрасно работало с моими локальными базами MAMP PRO 2.0.5 на OS X 10.8.5 (Mountain Lion), которые mysqlworkbench сказали, что были коррумпированы ранее (но MAMP phpmyadmin отлично справлялся с ними, пока они были "коррумпированными", любопытно). Теперь оба средства mysqlWorkbench 6.0 и MAMP PRO phpmyadmin оба счастливы, и я тоже.
Если это происходит по конкретному запросу, имейте в виду, что это также может произойти, если вы пытаетесь использовать функцию undefined.
Это происходит из-за изменений схемы, требуемых для разных версий сервера.
mysql_upgrade -uroot -p
будет filx проблема.
Иногда вам требуется удалить сервер и очистить его каталог данных. И переустановите, чтобы создать новую копию файлов данных.
Используя MAMP PRO (версия 2.2), я попробовал предложение pmking и все еще ничего не получал. Поэтому я отредактировал два файла: /Applications/MAMP/bin/repairMysql.sh /Applications/MAMP/bin/upgradeMysql.sh
изменение "proot" на "p" в каждом. Это создает подсказку для пароля root MySQL, и это сработало!
Я надеюсь, что это поможет кому-то другому.
на debian 6, MySQL 5.1.73-1 (Debian), у меня была та же проблема, и начало и остановка помогли мне.
/etc/init.d/mysql stop
/etc/init.d/mysql start
не уверен, что произойдет, но проблема, похоже, исчезнет после того, как это прекратится и начнется, просто захотелось добавить его здесь, в случае, если другие проблемы имеют такую же проблему.
Я использую Centos 6.5 для целей сервера. И Mysql Workbench для диаграммы ERR. У меня такая же ошибка. Ответы выше не помогли мне.
Этот ответ основан на изменении типа данных для столбца комментариев. И работает как шарм.
Соедините mysql с консолью.
use mysql;
show create table mysql.proc;
Затем найдите столбец комментария. Если тип данных char, измените текст.
Вы также можете использовать любой другой gui для внесения изменений.
Это должно сделать трюк:
mysql_upgrade -uroot -p --force
Вам может потребоваться указать полный путь для команды, если mysql это не в пути поиска оболочки.
В Debian 6 он должен быть загружен:
/usr/bin/mysql_upgrade -uroot -p --force
В Mac MAMP путь по умолчанию:
/Applications/MAMP/Library/bin/mysql_upgrade -uroot -p --force
В Windows это будет где MySQL установлен и содержится в подкаталоге bin. По умолчанию он должен быть расположен по адресу:
"C:\Program Files\MySQL\MySQL Server\[*CHANGE TO MySQL SERVER*]\bin\mysqladmin" -u root shutdown
Исходный ресурс: Как разрешить код ошибки MySQL: 1548 Не удается загрузить из mysql.proc. Вероятно, таблица повреждена
Я получил эту ошибку, когда у меня была синтаксическая ошибка в моем SQL-запросе в соединении.
Я сделал
JOIN shops ON s (...)
вместо правильного
JOIN shops s ON (...)
Эта ошибка была действительно запутанной, я не знаю, что это связано с mysql.proc, но исправление запроса устранило проблему. Ни одно из вышеперечисленных решений не работало по очевидным причинам.
Это, вероятно, происходит, когда изменения в схеме требуют разных версий сервера mysql.
Чтобы исправить это, следуйте строке ниже:
mysql_upgrade -uroot -p --force
/usr/bin/mysql_upgrade -uroot -p --force
Подробная информация о сообщении вы найдете здесь: Невозможно загрузить из mysql.proc. Вероятно, таблица повреждена
если вы используете Unix (например, Ubuntu), вы можете попробовать следующее:
sudo ./mysql_upgrade -uroot -p
как предложил Bimal.
У меня была такая же ошибка, и решение было просто глупо, поэтому я рекомендую искать простые ответы, прежде чем начинать обновление. В моем конкретном случае проблема была в том, что я сделал:
COUNT (id) AS quantity ... # Fails: notice space between COUNT and (
где он должен читать
COUNT(id) AS quantity ... # Works: notice no space between COUNT and (
Это происходит, когда вы не используете фреймворк, вы могли бы (должны) сделать что-то вроде этого, в этом случае с помощью Laravel 5:
$users = DB::table('users')->count();
Ничего себе, я просто перехожу в C:\xampp\mysql\bin и запускаю mysql_upgrade.exe
Он исправляет себя, и теперь он работает отлично.