Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да влезете автоматично в MySQL от шел скрипт?

Алтернативни начини за записване на тези опции.

Можете да пишете

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 файл



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySqlCommand Command.Parameters.Add е остарял

  2. Основни MySQL заявки

  3. Грешка 1130 в mysql

  4. Извличане само на фиксиран брой редове в MySQL

  5. Разлика между LIKE и =в MYSQL?