在没有密码提示的情况下在 Ubuntu 上安装 MySQL

2021-11-17 00:00:00 bash ubuntu apt mysql

如何编写脚本在 Ubuntu 上安装 MySQL 服务器?

How do I write a script to install MySQL server on Ubuntu?

sudo apt-get install mysql 会安装,但也会要求在控制台输入密码.

sudo apt-get install mysql will install, but it will also ask for a password to be entered in the console.

如何以非交互式方式执行此操作?也就是写个脚本可以提供密码?

How do I do this in a non-interactive way? That is, write a script that can provide the password?

#!/bin/bash
sudo apt-get install mysql  # To install MySQL server

# How to write script for assigning password to MySQL root user
# End

推荐答案

sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password your_password'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password your_password'
sudo apt-get -y install mysql-server

对于特定版本,例如mysql-server-5.6,您需要像这样指定版本:

For specific versions, such as mysql-server-5.6, you'll need to specify the version in like this:

sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password your_password'
sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password your_password'
sudo apt-get -y install mysql-server-5.6

对于 mysql-community-server,key 略有不同:

For mysql-community-server, the keys are slightly different:

sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password your_password'
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password your_password'
sudo apt-get -y install mysql-community-server

将 your_password 替换为所需的 root 密码.(似乎 your_password 也可以为空白 root 密码留空.)

Replace your_password with the desired root password. (it seems your_password can also be left blank for a blank root password.)

如果您的 shell 不支持 here-strings(zsh、ksh93 和 bash 支持它们),使用:

If your shell doesn't support here-strings (zsh, ksh93 and bash support them), use:

echo ... | sudo debconf-set-selections 

相关文章