Як запустити один запит через mysql з командного рядка?


157

Я шукаю змогу запустити один запит на віддаленому сервері в сценарії завдання.

Наприклад, інтуїтивно, я можу уявити, що це піде приблизно так:

mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"

Відповіді:


249
mysql -u <user> -p -e "select * from schema.table"

3
C: \ Програмні файли (x86) \ MySQL \ MySQL Server 5.7 \ bin> mysql.exe -u root -p -e "мій запит" ----> ПОМИЛКА 1045 (28000): Доступ відмовлено користувачеві 'root' @ 'localhost' (з використанням пароля: ТАК)
Dr.jacky

2
Це повинен бути першим результатом пошуку в Google (для "mysql exec sql з командного рядка"), а не величезним сайтом mysql!
Гійом Буа

4
Також, якщо ви хочете зняти заголовок та формат таблиці, ви можете використовуватиmysql -u <user> -p -B --disable-column-names -e 'select * from schema.table'
dvlcube

2
@tinybyte Припускаючи Linux: Insinde подвійно цитує зірочку *на всі файли в поточному каталозі, в той час як це розширення не відбувається в одноцитатах, ось чому. Подвійні котирування працюватимуть на запитання без позначення *.
NobbZ

2
@ Dr.jacky Я впевнений , що ви на самому справі не мають потреби більше, але в майбутньому, якщо ваш кореневої користувач не має пароля, то не передати параметр -p , як пробіл, просто не передати його на все теmysql.exe -u root -e "my query"
solidau

29
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"

З використання роздруківки:

-e, --execute=name
Виконати команду та вийти. (Вимкнення --forceта файл історії)


15

ось як це можна зробити з крутим трюком:

mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'

'<<<' доручає оболонці приймати все, що слідує за нею як stdin, подібно до трубопроводу від ехо.

використовуйте прапор -t, щоб увімкнути вихід у форматі таблиці


13

Якщо це запит, який ви запускаєте часто, ви можете зберігати його у файлі. Тоді, коли ви хочете запустити його :

mysql < thefile

(звичайно, з усіма прапорами входу та бази даних)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.