2015-11-12 5 views
1

Некоторое время назад я скопировал (экспортировал) мою базу данных mysql в файл .sql. Когда я это сделал, он также экспортировал информацию из этой базы данных, хотя я этого действительно не хотел. (Если мне не нужна информационная_схема по какой-то причине.) Теперь, я нахожусь в отдельной учетной записи phpmyadmin, пытаясь импортировать мой .sql-файл, но при этом я получаю:Импорт MySQL: PhpMyAdmin не позволит мне получить доступ к 'information_schema'

1044 - Доступ запрещен для пользователя 'sql595249 '@'% 'в базу данных' information_schema '

В этом файле .sql есть много кода, связанного с информационным_схемами, я попытался просто удалить первые несколько строк, на которые указывает экспорт, чтобы создать его, но это doesn 't работать, потому что все еще тираж, чтобы вставить кучу таблиц, а что нет. Я не уверен, как удалить каждую строку кода, которая меняет ее, не боясь часами.

Кроме того, я нахожусь на сайте phpmyadmin, то есть сервер не запускается на моем собственном компьютере. Я не могу установить какой-либо специальный тип программного обеспечения для phpmyadmin или mysql.

+0

Можете ли вы добавить некоторые релевантные части дампа к вопросу? Таким образом мы увидим, можно ли их безопасно отфильтровать из дампа, или вам нужны повышенные привилегии. – Kenney

+0

information_schema только для чтения, он содержит метаданные всех объектов базы данных в экземпляре mysql. Когда вы создаете, изменяете или удаляете любые объекты базы данных, mysql автоматически обновляет information_schema. Таким образом, не нужно сбрасывать его, и вы не можете напрямую восстановить его. – Shadow

+0

Я не знаю, как открыть командную строку bash. Может ли кто-нибудь пройти меня до того, чтобы попасть туда на phpmyadmin? Я не уверен, могу ли я получить к нему доступ, потому что я не принимаю сервер mysql. – Sheeplie

ответ

0

Похоже, что дамп вывалил базу данных information_schema. Возможно, вы можете исправить это следующим образом:

В командной строке Баш:

sed -i s/information_schema/information_schema_foo/i dump.sql 

Затем загрузите обновленный дамп. У вас будет новая база данных information_schema_foo. Вы можете отказаться от него.

Это работает, если у вас нет реальных данных, имеющих подстроку information_schema. Вы можете это подтвердить, выполнив

grep -i information_schema dump.sql 
+0

Запустить это как .. запрос в phpmyadmin? – Sheeplie

+0

Нет, обе команды Bash запускаются с терминала. Если вы работаете в Windows, получите Cygwin или вы можете использовать функцию поиска/замены текстового редактора. Если вы находитесь на Mac или Linux, у вас есть родной терминал. dump.sql - это имя вашего файла дампа. –

+0

Mysqldump не выводит объекты наугад, они группируются вместе. Просто удалите связанные с Information_schema таблицы создания и вставки вручную с помощью текстового редактора, не нужно запускать какой-либо скрипт. – Shadow

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