如何通过SSH通过Shell脚本在MySQL 5.7中设置根密码

时间:2018-12-07 22:09:40

标签: mysql ubuntu installation

我们需要能够使用Shell脚本(通过SSH)安装MySQL 5.7,然后在同一脚本中设置密码,而无需人工干预。我们当前的Shell脚本使用以下命令在Ubuntu服务器上安装MySQL 5.7:

export DEBIAN_FRONTEND=noninteractive    
sudo -E apt-get -q -y install mysql-server-5.7

这允许在没有提示的情况下安装MySQL。但是,它还会创建没有密码的“ root”用户。因此,在脚本中,我们尝试使用以下命令设置密码:

sudo mysqladmin -u root password abc123

这会产生以下错误消息,并且没有设置密码:

mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

该脚本正在通过(安全)SSH连接运行,但未设置密码。我们还尝试使用MySQL CLI调用以下命令的多个变体,但没有成功:

sudo mysql -u root -e "use mysql;update user set authentication_string=password('abc123') where user='root';flush privileges;

已解决

我在这里找到了对该问题的解释和解决方案: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

这是解决方案:

sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPassword';"

这可以在脚本中用于自动安装。

0 个答案:

没有答案