Как запустить файл сценария MySQL удаленно через ssh?

Я бы хотел сделать что-то вроде этого:

ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"

Однако я бы хотел запустить весь файл .sql, а не только несколько операторов. Является ли это возможным ?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
2 455
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Если файл SQL находится на удаленном хосте, укажите перенаправление в удаленной команде:

ssh root@host "mysql database < filename.sql"

Если он находится на локальном хосте, перенаправьте ввод SSH:

ssh root@host "mysql database" < filename.sql

После этого я получаю сообщение от сервера, которое включает «Использование: mysql [OPTIONS] [database]» и очень длинный список опций.

Seio. E. 30.03.2018 18:46

второй. Это не ошибка, а руководство по флагам и параметрам.

Seio. E. 30.03.2018 18:47

Это ошибка, он думает, что вы указали неверный вариант.

Barmar 30.03.2018 18:48

Что говорит ssh root@host "type mysql"?

Barmar 30.03.2018 18:49

mysql - это / usr / bin / mysql

Seio. E. 30.03.2018 18:50

Это полный статус: ssh root @ host "mysql -u root password ***** my_db_name" <backup.sql

Seio. E. 30.03.2018 18:51

Это должно быть -p***** или --password=******

Barmar 30.03.2018 18:52

Возможно, было бы лучше поместить имя пользователя и пароль в ~root/.my.cnf, чтобы вам не приходилось жестко закодировать их в скрипте.

Barmar 30.03.2018 18:53

Сделаю! теперь он говорит: mysql: [Предупреждение] Использование пароля в интерфейсе командной строки может быть небезопасным. Означает ли это, что выполняется sql?

Seio. E. 30.03.2018 18:55

Да. Это просто предупреждение, он все равно выполняет код.

Barmar 30.03.2018 18:56

Вы можете избавиться от этого, указав пароль в файле конфигурации.

Barmar 30.03.2018 18:57

Конечно, но вы должны загрузить этот файл .sql на сервер удаления, прежде чем ... Для этого вы можете использовать scp (если вы можете подключиться к ssh, вы также можете использовать scp)

Установите ssh-соединение, а затем выполните следующую команду:
mysql -u USERNAME -p DATABASE_NAME < scripts.sql
Скрипт должен храниться в файле scripts.sql, расположенном в вашем рабочем каталоге.

Другие вопросы по теме