Debian

靜默 MySQL 伺服器安裝

  • May 16, 2018

我想使用 SSH 連接和包含安裝命令的 bash 腳本在 Raspberry Pi (Debian) 上安裝 mysql-server。關鍵是,安裝需要使用腳本自動完成。我不希望 SSH 視窗中有任何使用者互動或圖形提示。

這就是為什麼我使用以下程式碼來設置 mysql-server 但阻止任何圖形回饋:

sudo DEBIAN_PRIORITY=critical apt-get install -y -q mysql-server php5-mysql

到目前為止它執行良好,安裝執行沒有任何提示等。但是當我在安裝後嘗試更改 MySQL 伺服器的 root 密碼時,總是得到響應:

$ mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我希望靜默安裝使用標準使用者“root”和空密碼,但我也嘗試了許多其他可能的選項。我還嘗試了其他命令,例如:

$ mysql -u "root" -p ""
$ mysql --user="root" --password=""

或者

$ mysqladmin -u root password ""

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

但不幸的是沒有任何成功。

有沒有人知道一種在腳本中以靜默方式和非圖形方式安裝 mysql-server 的方法,並在腳本中配置 root 密碼或在設置完所有內容後更改它?

在 Debian 中,您擁有/etc/mysql/debian.cnf使用者debian-sys-maint的密碼。

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

使用使用者名和密碼

$$ client $$部分,您可以在 MySQL 安裝後更改 root 密碼。 你可以這樣做:

PASS=`sudo awk '/password/ { print $3;exit }' /etc/mysql/debian.cnf`
echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');" \
| mysql -u debian-sys-maint -p$PASS

引用自:https://unix.stackexchange.com/questions/265319