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.cnf
Debian にはユーザーのパスワードがあります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