Linux

DB(MySQL)に接続できない場合の解決方法(bash: <password>: event not found)

MySQLデータベースに接続する際、特殊文字を含むパスワードでエラーが発生することがあります。本記事では、「bash: <password>: event not found」というエラーに遭遇した際の原因と解決方法を解説します。同様の問題でお困りの方は是非参考にしてください。

事象

DBにに以下コマンドで接続した際、エラーが発生しました。

# mysql -u root -p x&UwNI!?p5Zq
bash: !?p5Zq: event not found

初期パスワード取得方法

以下コマンドで確認したパスワードで接続しています。一番最後のroot@localhost: x&UwNI!?p5Zqx&UwNI!?p5Zqがパスワードとなります。

# sudo grep 'temporary password' /var/log/mysqld.log
2024-01-02T06:38:35.204493Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: x&UwNI!?p5Zq

解決方法

パスワードをシングルクォーテーションもしくはダブルクォーテーションでパスワードを囲うと接続できました。そもそも「mysql -u root -p」で接続しようとすればクォーテーションで囲う必要がないのではともおもいます。

# mysql -u root -p'x&UwNI!?p5Zq'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 11
Server version: 8.0.35

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql>

-Linux
-