debconf-set-selections
APT が実際のパッケージのインストールを開始する前に、Debian/Ubuntu のシステム管理者が MySQL root ユーザーのパスワードを入力するために、このユーティリティを長年使用してきました (例: ) apt install mysql-server
。
ただし、このユーティリティを使用せずに MySQL をインストールすると、ユーザーのテーブルにroot
空白のパスワード フィールドが表示されます。つまり、パスワードを入力せずにコマンド ラインで実行できます。mysql.users
sudo mysql -u root
これが機能する場合、シェル スクリプト内で機能しないのはなぜですか?
例えば:
## this works fine in shell scripts (MySQL root user will have a blank password) ##
apt update
apt install mysql-server-8.0
## this only works when typed into the shell (not within a script) ##
mysql --user=root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ABC123';"
mysql --user=root -e "FLUSH PRIVILEGES;"
PSmysql_secure_installation
ウィザードと手動クエリ (代替) は認識していますが、Bash スクリプトなどで使用すると空白のパスワードを使用すると MySQL アクセスが失敗するのはなぜだろうかと思っています。ユーザー、バインド アドレス、プロトコル、ホスト、ソケット、または一般的なアクセス許可。
debconf-set-selections
ジャンキーなexpect
推測とチェック以外に解決策はありますか?