2013-07-02 3 views
1

자동 셸 스크립트를 준비하고 있지만 셸 스크립트에서 실행중인 MySQL 명령에는 경고가 있습니다. 경고 : 명령 줄 인터페이스에서 암호를 사용하면 안전하지 않을 수 있으며 .sock 오류가 발생할 수 있습니다. 제발 도와주세요 ... 내 코드는 다음과 같습니다셸 스크립트에서 실행중인 MySQL 명령에 오류가 있습니다.

user="root" 
password="7layer" 
db="mysql" 
mysql -u "$user" -p"$password" <<EOF 
    use $db; 
mysqld_safe --skip-grant-tables 
update user set Password=PASSWORD('7layer') where user='root'; 
UPDATE mysql.user SET password_expired='N' WHERE User='root'; 
FLUSH PRIVILEGES; 
exit; 
EOF 

출력은 다음과 같습니다

Starting MySQL.           [ OK ] 
Shutting down MySQL..          [ OK ] 
Warning: Using a password on the command line interface can be insecure. 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 
[[email protected] AutoInstall]# 

답변

0

편집 사용자 ~/.my.cnf 파일은 보안 파일을

[mysql] 
user=root 
password=7layer 

을 추가

chmod 600 ~/.my.cnf 

은 다음 mysqld를 (/etc/init.d/mysqld restart)를 다시 시작해야하지만 사용할 수 있습니다 있습니다

mysql <<EOF 
use $db; 
mysqld_safe --skip-grant-tables 
###your sql queries### 
exit; 
EOF 

암호없이

갱신 : 이것은 당신의 하나의 스크립트에 바인딩되지

, 그것은 사용자에게 묶여있다. 이것이 중요하다면, 커맨드 라인에서 패스워드를 입력하지 않고 mysql에 접근 할 수있는 스크립트를위한 새로운 사용자를 설정하십시오.

갱신 :

당신이 당신의 MySQL 서버가 실행되고 있지 Shutting down MySQL.. 질문에서 볼 수 있듯이. 로그가 중단되는 이유를 살펴보십시오. 이 중 하나는 더 많은 정보를 포함해야합니다 :

/var/log/mysql.err 
/var/log/mysql.log 
/var/log/mysql/mysql.log 
/var/log/mysql/mysql.err 
+0

안녕하세요, 댄, 내가 URL 스크립트를 시도했지만 PID가 –

+0

{MySQL 서버 PID 파일을 찾을 수 없습니다! [FAILED] MySQL 시작 .. 서버가 PID 파일 ([FAILED] /mysql/autoinstallapi.ril.com.pid)을 업데이트하지 않고 종료합니다. ERROR 2002 (HY000) : '/var/lib/mysql/mysql.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다. ( ) –

+0

로그를 살펴보십시오. ** PID 파일이 존재하고 데이터베이스의 uid에 의해 쓰기 가능인지 확인하십시오 ** – DanFromGermany

관련 문제