восстановление базы данных MySQL - PullRequest
12 голосов
/ 04 марта 2011

Я создал файл с именем ab.sql, используя утилиту mysqldump базы данных с именем library.Работало нормально.Теперь я пытаюсь восстановить его с помощью mysqlimport.Моя база данных уже существует.Но я хочу переопределить это.Я использую команду

mysqlimport -uroot -p**** library D:/ab.sql

в командной строке, но выдает ошибку, которая говорит:

mysqlimport: Ошибка: 1146, таблица «library.ab» несуществует при использовании таблицы: ab

отчаянно нужна помощь.

Ответы [ 2 ]

21 голосов
/ 04 марта 2011

mysqlimport читает строки из текстового файла в базу данных. mysqldump выводит файл, полный операторов SQL, а не простых строк. Вы можете запустить эти операторы SQL, используя:

mysql -u root < D:/ab.sql

В зависимости от параметров mysqldump, это может привести к удалению существующих данных в вашей базе данных. Если вы не уверены, я бы выбрал «drop» и «delete», чтобы убедиться, что все выглядит нормально.

9 голосов
/ 10 июня 2011

Марк Б прокомментировал: Учитывая вашу "не распознанную" ошибку, либо она не установлена, либо нет в вашем пути.

Как "Распознать" mysql

Если у вас установлен MySQL, скажем, XAMPP 1.7.3 в Windows 7, установленной на C:\xampp, вам нужно будет открыть командную строку Windows (cmd.exe) и изменить путь, чтобы включить MySQL:

cd C:\xampp\mysql\bin

Затем вы добавили бы команду из ответа Froody или другого варианта, например:

C:\xampp\mysql\bin>mysql -u {DB_USER} -p {DB_NAME} < path/to/file/ab.sql

Если вы переместите файл базы данных (то есть тот, который вы изначально экспортировали с помощью mysqldump)до C:\xampp\mysql\bin перед выполнением вышеуказанной команды вы можете не указывать путь к файлу базы данных, оставляя только:

C:\xampp\mysql\bin>mysql -u {DB_USER} -p {DB_NAME} < ab.sql

Затем вам будет предложено ввести пароль пользователя базы данных.Затем команда должна выполнить.Когда вы закончите, вы должны увидеть что-то вроде этого:

windows cmd mysql import

Надеюсь, это поможет и будет точным, с небольшой помощью StackOverflow, вот как это сработало для меня.Удачи!

...