Алтернативни начини за записване на тези опции.
Можете да пишете
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
да предава празни низове като отделни аргументи. Вашият коментар по-долу показва, че клиентът все пак ще поиска парола. Вероятно интерпретира празния аргумент като име на база данни, а не като парола. Така че вместо това можете да опитате следното:
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
.my.cnf файл
Но дори и да има начин, все пак бих ви предложил да използвате ~/.my.cnf
файл вместо това. Аргументите в командния ред вероятно са включени в списък с процеси, генериран от ps -A -ocmd
, така че другите потребители да могат да ги видят. .my.cnf
файл, от друга страна, може (и трябва) да бъде четим само от вас (използвайки chmod 0600 ~/.my.cnf
) и ще се използва автоматично. Нека този файл включва следните редове:
[client]
user=root
password=
След това просто mysql -e "SHOW DATABASES"
ще бъде достатъчно, тъй като клиентът ще получи своите идентификационни данни от този файл.
Вижте 6.1.2.1. Указания за крайния потребител за защита с парола
за различните начини, по които можете да предоставите парола, и съответните им предимства и недостатъци. Вижте 4.2.3.3. Използване на файлове с опции
за обща информация относно този .my.cnf
файл