MySQL의 경고 메시지를 억제하지만 쉘 스크립트의 오류는 허용합니다.

MySQL의 경고 메시지를 억제하지만 쉘 스크립트의 오류는 허용합니다.

일부 낮은 수준의 MySQL 명령을 사용하여 쉘 스크립트를 실행할 때 내 로그 파일이 다음 메시지와 함께 덤프됩니다.

메시지는 다음과 같습니다.

"경고: 명령줄 인터페이스에서 비밀번호를 사용하는 것은 안전하지 않을 수 있습니다."

이러한 메시지를 중지하려면 다음 작업 정의를 사용합니다.

예:

run_wrapper.sh |grep -v "Warning: Using a password" > output.log 2>&1

이것은 작동하지만 MySQL 오류는 기록되지 않습니다 output.log.

아래와 같이 정의를 변경하면 MySQL 오류가 나타나기 시작합니다.

run_wrapper.sh > output.log 2>&1

그렇다면 문제는 경고 메시지를 억제하고 cron 정의만 사용하여 로그 파일의 SQL 오류를 보고하는 방법입니다.

답변1

Bash 스크립트의 상단에서 편집하세요.

export MYSQL_PWD=yourdbpassword

그리고 mysql 쿼리는 다음과 같습니다.mysql -u username -h host db -e "statement"

인용하다:의 답변스택 오버플로. 다른 답변도 따를 수 있습니다.

답변2

래퍼에서 다음과 유사한 줄을 검색합니다.

mysql -u<username> -p<some_password> -hlocalhost -D<database_name> 

그리고로 변경

export MYSQL_PWD=<some_password> ; mysql -u<username> -hlocalhost -D<database_name> 

이렇게 하면 경고의 원인이 해결됩니다.

답변3

놓친 것 같군요표준 에러run_wrapper.sh오류가 발생하지 않고 grep로그 파일에 도달하지 않도록 자체에서 리디렉션합니다 .

둘 다 만족스러우면 이렇게 해보세요표준 출력그리고특별한 오류로그 파일에 쓰기

run_wrapper.sh 2>&1 | grep -v "Warning: Using a password" > output.log

또는 로그 파일에 오류를 기록하려는 경우표준 출력쓰기 호출 터미널을 종료하려면 다음을 시도하십시오.

( run_wrapper.sh 2>&1 1>&3 | grep -v "Warning: Using a password" > output.log ) 3>&1

답변4

명령 끝에 다음을 추가해 보세요.

/dev/null 2>&1

관련 정보