MySQLサーバーのサイレントインストール

MySQLサーバーのサイレントインストール

SSH接続とインストールコマンドを含むbashスクリプトを使用してRaspberry Pi(Debian)にmysqlサーバーをインストールしたいと思います。要点は、スクリプトを使用してインストールを自動化する必要があることです。 SSHウィンドウにユーザー対話やグラフィカルプロンプトが表示されたくありません。

これは、次のコードを使用してmysqlサーバーを設定しますが、グラフィカルフィードバックを防ぐ理由です。

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

これまではうまく機能しており、プロンプトなどのメッセージなしでインストールが実行されます。ただし、インストール後にMySQLサーバーのルートパスワードを変更しようとすると、常に次のような応答があります。

$ 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サーバーを自動的に非グラフィカルにインストールし、スクリプトにrootパスワードを設定するか、すべてが設定された後にそれを変更する方法を知っていますか?

ベストアンサー1

/etc/mysql/debian.cnfDebian にはユーザーのパスワードがありますDebian システムのメンテナンス

# 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

MySQLをインストールしたら、[client]セクションのユーザーとパスワードを使用してルートパスワードを変更できます。

これにより、次のことができます。

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

おすすめ記事