1

debconf-set-selectionsAPT が実際のパッケージのインストールを開始する前に、Debian/Ubuntu のシステム管理者が MySQL root ユーザーのパスワードを入力するために、このユーティリティを長年使用してきました (例: ) apt install mysql-server

ただし、このユーティリティを使用せずに MySQL をインストールすると、ユーザーのテーブルにroot空白のパスワード フィールドが表示されます。つまり、パスワードを入力せずにコマンド ラインで実行できます。mysql.userssudo 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推測とチェック以外に解決策はありますか?

4

0 に答える 0