MySQL的命令在shell脚本运行具有一个错误(MySQL commands running in

2019-10-18 08:11发布

我正在准备一个自动的shell脚本,但MySQL的命令在shell脚本运行的具有警告:使用命令行界面上的密码可以是不安全的,.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]#

Answer 1:

编辑使用者~/.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


文章来源: MySQL commands running in shell script possess an error
标签: mysql shell