Предположим, что я хочу получить доступ к серверу mysql и распечатать все таблицы и базы данных и их данные на локальном хосте, используя скрипт bash.

Сценарий у меня выглядит так:

mysql -u root -p пароль

После выполнения скрипта открывается оболочка mysql вместо bash. Так как я могу запустить команду с MySQL?

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

Изменить: теперь я получаю, какую команду я должен использовать, но все еще остается вопрос:

Мне нужно сделать это в сценарии, но при вводе команды mysqldump он запрашивает пароль в интерактивном режиме.

Так как я могу обработать пароль в скрипте bash?

3 ответа3

1

Посмотрите mysqldump, который делает то, что вы хотите.

Пример использования:

mysqldump -u root -p --all-databases

Смотрите руководство для большего количества переключателей в соответствии с вашей конкретной ситуацией.

0

попробуй это..

mysqldump -u root -p databasename > filename.sql

все таблицы хранятся в filename.sql. это как резервное копирование.

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

mysqldump -u root -p databasename < filename.sql
0

Если вы выполните man mysqldump , вы получите следующий вывод:

--password [= пароль], -p [пароль]

Пароль для использования при подключении к серверу. Если вы используете краткую форму опции (-p), между ней и паролем не должно быть пробела. Если вы опускаете значение пароля после параметра --password или -p в командной строке, mysqldump запрашивает его.

Указание пароля в командной строке следует считать небезопасным. См. Раздел 6.1.2.1, «Руководство для конечного пользователя по безопасности пароля». Вы можете использовать файл опций, чтобы избежать ввода пароля в командной строке.

Предполагая, что ваш пароль root - ПАРОЛЬ, просто попробуйте следующую команду:

mysqldump -u root -pPASSWORD --all-databases > database.sql

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .