Как передать пароль в командную строку mysql

Старый вопрос, но учитывая, что в последний раз я видел одноядерный персональный компьютер десять лет назад, вы можете использовать gnu parallel

для решения оболочки раскрытие и интерпретация кавычек

my_awk='ORS=NR%3?" ":"\n"' 

Используйте соответствующий глобус для выбора входных файлов. Здесь я использую {.} , чтобы удалить расширение из имени вывода, потому что я добавляю его позже

parallel -jX "awk '$my_awk' {} > {.}_sorted.tex" ::: *.tex

, где X - количество процессоров, которые вы хотите использовать, но вы можете использовать 1. Это даст вам файл [1-9] _sorted.tex в качестве выходных данных

20
23.05.2015, 09:18
4 ответа

Клиентская утилита mysql может принимать пароль в командной строке с параметрами -p или - password = .

Если вы используете -p , после буквы параметра не должно быть пробелов:

$ mysql -pmypassword

Я предпочитаю длинные параметры в сценариях, поскольку они самодокументируются:

mysql --password=mypassword --user=me --host=etc
12
27.01.2020, 19:44

создайте файл ~/.my.cnf, сделайте его доступным только себе, права доступа 600.

   [client]
   user=myuser
   password=mypassword

Тогда вам больше не нужно вводить пароль.

   bash$ mysql -u myuser mydatabase
   mysql>
4
30.06.2020, 17:31

Вы можете использовать изящный трюк Linux...

/dev/stdinможно использовать как файловый ресурс для --defaults-fileвот так:

echo -e "[client]user=xxx\npassword=xxx" | mysql --defaults-file=/dev/stdin -e 'select user()

Обычно вы можете использовать -вместо /dev/stdin, но это соглашение, которое многие программы (, включая mysql), не соблюдают.

Еще немного о файловом ресурсе /dev/stdin:

$ ls -la /dev/stdin
lrwxrwxrwx 1 root root 15 Jun 19 08:35 /dev/stdin -> /proc/self/fd/0

Таким образом, вы также можете проверить ситуации с пустым паролем

2
09.07.2020, 14:26

Как сказал @maxschlepzig в комментарии,

Note that there is the MYSQL_PWD environment variable which is read by mysql if you don't specify -p.

Так в баш:

read -s -p "Enter the mysql password for $DBUSER @ $DBNAME: " DBPASS 
export MYSQL_PWD="$DBPASS" 
mysqldump -u $DBUSER $DBNAME > dump.sql
2
02.11.2021, 15:05

Теги

Похожие вопросы