首页 文章

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

提问于
浏览
288

如何编写脚本在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

4 回答

  • 413

    使其工作的另一种方法:

    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
    

    请注意,这只是将密码设置为"root" . 我无法使用简单的引号 '' 设置空密码,但这个解决方案对我来说已经足够了 .

    基于解决方案here .

  • 3

    使用:

    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
    
    sudo mysql -h127.0.0.1 -P3306 -uroot -e"UPDATE mysql.user SET password = PASSWORD('yourpassword') WHERE user = 'root'"
    
  • 26
    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 ,您需要像这样指定版本:

    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,密钥略有不同:

    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密码 . (对于空白的root密码,似乎your_password也可以留空 . )

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

    echo ... | sudo debconf-set-selections
    
  • 228

    这应该可以解决问题

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

    当然,它会留下一个空白的root密码 - 所以你想要运行类似的东西

    mysqladmin -u root password mysecretpasswordgoeshere
    

    然后为帐户添加密码 .

相关问题