2015-01-13 2 views
17

Я знаю, что это похоже на дубликат, но найденные мной решения не работают для меня. Я удалил mysql 5.1 и установил 5.6, и я хотел бы импортировать предыдущий файл sql экспорта. Но есть некоторая функция, которая делает эту ошибку в этом файле экспорта. Я нашел и запустил команду:
../bin mysql mysql_upgrade -uroot -p --force , но если я понятен, он работает только при обновлении, а не при установке. Есть ли какое-то решение для меня?Невозможно загрузить из mysql.proc. Вероятно, таблица повреждена.

Спасибо!

EDIT: Я удалил определение функции из файла импорта, и импорт выполнен. Но если я хочу переопределить эту функцию вручную, она покажет мне ту же ошибку «невозможно загрузить из mysql.proc». Функция здесь:

DELIMITER $$ 

CREATE FUNCTION `randStr250`(length int) RETURNS varchar(250) CHARSET utf8 
begin 
    declare s varchar(250); 
    declare i tinyint; 
    set s=""; 
    if (length<1 or length>6) then 
     set s="Parameter should be in range 1-6. Your value was out of this range."; 
    else 
    set i=0; 
    while i<length do 
     set s=concat(s,sha1(now())); 
     set i=i+1; 
    end while; 
    end if; 
    return s; 
end $$ 

DELIMITER ; 
+1

Ok Я нашел это: ** mysql \ bin mysql_upgrade.exe -u root -pxxx --force ** и он работает. –

ответ

29

Если бы подобный вопрос после того, как restorting БД дамп из MySQL-5.5.29 в MariaDB-5.5.41. mysql_upgrade исправили проблему

$ mysql_upgrade -u root -pxxx 

Согласно mysql manual,

Вы должны выполнить mysql_upgrade каждый раз при обновлении MySQL.

+2

Просто комментарий для тех, кто использует mamp, то же самое относится, но mysql_upgrade не будет в вашем пути, поэтому запустите: '/ Applications/MAMP/Library/bin/mysql_upgrade -u root -p root' – Chris

+0

и для пользователей Mac OS: '/ usr/local/mysql/bin/mysql_upgrade -u root -proot' –

1

Большинство людей, имеющих эту проблему, рекомендуют модернизировать MySQL. Если вы находитесь в такой конфигурации, как я, в которой это происходит, когда вы пытаетесь настроить узел SLAVE для репликации с узла MASTER, вы действительно не хотите испортить версии.

Я имею в виду, что в моем случае у меня был узел Windows MASTER и был настроен узел Linux SLAVE (так что сначала нужно сделать танец mysqldump). Поскольку модернизация MySQL немного сложнее в Linux (точнее, лучше не делать этого, чтобы пользоваться стабильностью пакетов Linux, которые, например, происходят из вашего дистрибутива LTS), возможно, это просто хорошая идея, чтобы убедиться, что что версия MySQL, которая у вас есть в вашей ОС Windows, работает с той же версией, что и ваша версия MySQL, в вашей ОС Linux.

Как только я убедился, что обе версии были одинаковыми, mysqldump и восстановление работали, и я мог правильно настроить SLAVE-узел, не получив ужасную ошибку Cannot load from mysql.proc. The table is probably corrupted..

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

Смежные вопросы