6

Я ищу способ уменьшить количество набрав, чтобы проверить записи MySQL и другие вещи. Например, я хотел создать файл .bat, который будет выполнять следующие команды.

mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;

Проблема в том, что после начального mysql -u user -p остальные записанные команды не выполняются. Можно ли продолжить выполнение команд после вызова чего-то вроде mysql или других программ, которые, кажется, добавляют свой префикс (?) к началу команд (mysql>). Я не очень знаком с терминологией, так что прости меня, если это звучит странно. Я хотел бы использовать такую же концепцию и для других вещей.

Помощь очень ценится, спасибо.

4 ответа4

6

Вы можете запустить mysql в пакетном режиме, как указано в документации.

mysql -h host -u user -p < batch-file

В основном вы используете файл, содержащий все ваши команды в качестве входного параметра - mysql выполнит содержимое этого файла.


Редактировать: Если вы хотите создать свой запрос на лету, вы всегда можете сделать так, чтобы ваш пакетный файл записывал запрос во временный файл, который затем можно загрузить для выполнения в mysql. Например:

echo show tables from test > C:\path\to\file.sql
mysql -h host -u user -p < C:\path\to\file.sql
2

Запустите mysql с параметром -e:

mysql -h host -u user -p -e 'SHOW TABLES FROM test'
2

Возможно, вы захотите попробовать небольшую хитрость, возникшую из-за других вопросов на этом форуме (к сожалению, она была удалена).

Вы можете вставить входные данные для команды непосредственно в строках под командой, а затем выполнить файл НЕ как пакетный файл, а как входной файл cmd.exe (это похоже на документ в Unix). Например:

скрипт.ТЕКСТ:

@echo off
mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;
EXIT
echo Exit from MYSQL...

Выполните предыдущий "скрипт" следующим образом:

cmd <скрипт.текст

Если вы выполните этот тест, пожалуйста, сообщите результат ...

Антонио

-1

Вы могли бы написать что-то вроде этого

mysql -u dbUsername yourDatabase -e "SELECT * FROM table;"

Или для запуска повторяющихся задач создайте файл runtasks.bat, сохраните его в корне своего проекта, а затем запишите свои задачи cmd внутри

mysql -u dbUser -e "DROP DATABASE IF EXISTS testDatabase;"
mysql -u dbUser -e "CREATE DATABASE testDatabase;"

php index.php migration latest #

cd application\tests
phpunit

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