Ven*_*kat 299 mysql bash ubuntu apt
如何编写脚本在Ubuntu上安装MySQL服务器?
sudo apt-get install mysql 将安装,但它也会要求在控制台中输入密码.
我如何以非交互方式执行此操作?也就是说,编写一个可以提供密码的脚本?
#!/bin/bash
sudo apt-get install mysql # To install MySQL server
# How to write script for assigning password to MySQL root user
# End
Run Code Online (Sandbox Code Playgroud)
Dim*_*lov 428
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
Run Code Online (Sandbox Code Playgroud)
对于特定版本,例如mysql-server-5.6,您需要像这样指定版本:
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
Run Code Online (Sandbox Code Playgroud)
对于mysql-community-server,密钥略有不同:
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
Run Code Online (Sandbox Code Playgroud)
将your_password替换为所需的root密码.(对于空白的root密码,似乎your_password也可以留空.)
如果你的shell不支持here-strings(zsh,ksh93和bash支持它们),请使用:
echo ... | sudo debconf-set-selections
Run Code Online (Sandbox Code Playgroud)
Mez*_*Mez 236
这应该可以解决问题
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get -q -y install mysql-server
Run Code Online (Sandbox Code Playgroud)
当然,它会留下一个空白的root密码 - 所以你想要运行类似的东西
mysqladmin -u root password mysecretpasswordgoeshere
Run Code Online (Sandbox Code Playgroud)
然后为帐户添加密码.
chr*_*gen 29
使其工作的另一种方法:
echo "mysql-server-5.5 mysql-server/root_password password root" | debconf-set-selections
echo "mysql-server-5.5 mysql-server/root_password_again password root" | debconf-set-selections
apt-get -y install mysql-server-5.5
Run Code Online (Sandbox Code Playgroud)
请注意,这只是将密码设置为"root".我无法使用简单的引号设置空白密码'',但这个解决方案对我来说已经足够了.
基于这里的解决方案.
| 归档时间: |
|
| 查看次数: |
135679 次 |
| 最近记录: |