簡體   English   中英

在Shell腳本中運行的MySQL命令存在錯誤

[英]MySQL commands running in shell script possess an error

我正在准備一個自動化的shell腳本,但是在shell腳本中運行的MySQL命令具有一個警告:在命令行界面上使用密碼可能不安全,並且會出現.sock錯誤。 請幫我...我的代碼是:

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)
[root@autoinstallapi AutoInstall]#

編輯您的用戶~/.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而無需從命令行輸入密碼。

更新:

正如您在問題中看到的, Shutting down MySQL..您的MySQL服務器未運行。 查看日志中止的原因。 其中之一應包含更多信息:

/var/log/mysql.err
/var/log/mysql.log
/var/log/mysql/mysql.log
/var/log/mysql/mysql.err

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM