프로그램을 시작한 후 프로그램에 두 개의 매개변수를 자동으로 제공하려면 어떻게 해야 합니까? [복사]

프로그램을 시작한 후 프로그램에 두 개의 매개변수를 자동으로 제공하려면 어떻게 해야 합니까? [복사]

MySQL 데이터베이스에 대한 새 테이블을 시작하고 생성하기 위해 우분투에서 잘 작동하는 다음 스크립트가 있습니다.

echo "CREATE DATABASE database_name" | mysql -u root -p

이 명령을 실행한 후 MySQL은 비밀번호를 묻습니다.

유일한 문제는 방랑 구성 bash 스크립트에서 이 작업을 수행하고 싶기 때문에 비밀번호 입력 프로세스를 자동화해야 한다는 것입니다. 기본적으로 다음과 같이 MySQL 프로그램에 입력 라인을 제공해야 합니다.

Enter password: password_goes_here

데이터베이스 생성 명령과 비밀번호를 텍스트로 프로그램에 입력하는 과정을 어떻게 통합할 수 있나요?

답변1

이 특정 문제의 경우 가장 간단한 해결책은 다음과 같이 명령 매개변수에 비밀번호를 제공하는 것입니다 mysql.

echo "CREATE DATABASE database_name" | mysql -u root --password=your_password

이는 요청하기 전에 mysql에 비밀번호를 제공합니다.

답변2

@아마추어 프로그래머의 답변좋습니다. 하지만 한 가지만 추가하고 싶었습니다. 누군가 비밀번호를 실행할 때 비밀번호가 노출되는 것이 걱정된다면 ps auxwww다음과 같은 환경 변수를 사용하여 MySQL에 비밀번호를 제공할 수도 있습니다 MYSQL_PWD.

mysql> set password for 'will@localhost' = PASSWORD('test');
Query OK, 0 rows affected, 1 warning (0.01 sec)

$ export MYSQL_PWD=test
$ mysql -uwill@localhost
Welcome to the MySQL monitor.

이 옵션과 다른 옵션이 설명되어 있습니다.MySQL 문서에서.

관련 정보