2017-12-03 12 views
-6

私はBashスクリプトの初心者です。私は私のためのMySQLにログインするスクリプトを作成したい:MySQLはスクリプトのパスワードをデータベースとして扱います

PASSWORD="MyPassword" 

sudo service mysql start 

mysql -u root -p $PASSWORD 

しかし、それは私のパスワード($PASSWORD)はデータベースではないことを私に言って、エラーがスローされます。

これを行う方法はありますか?

RTFMまたはUTFMについて質問していただきありがとうございます。

+1

実際のエラーメッセージとはなんですか? – aaron

答えて

2

man mysqlから:

ショートオプションフォーム(-p)を使用している場合は、オプションとパスワードの間にスペースを持つことはできません。

だから、どちらか

mysql -u root -p"$PASSWORD" 

または

mysql -u root --password "$PASSWORD" 
1

コマンドラインでパスワードを使用することが安全でないです。 mysqlユーザーガイドから

これは便利しかし安全ではありません。システムによっては、他のユーザーがコマンドラインを表示するために呼び出される可能性のあるpsなどのシステム状態プログラムでパスワードが表示されることがあります。

db資格情報を保存するには、mysql_config_editorユーティリティを使用することをお勧めします。

mysql --login-path=YOUR_LOGIN_PATH YOUR_DB 

例(資格情報を設定する)::

mysql_config_editor set --login-path=root --host=localhost --user=root --password 

例(接続

mysql_config_editor set --login-path=YOUR_LOGIN_PATH --host=YOUR_HOST --user=YOUR_DB_USER --password 

その後、それはあなたがあなたのDBに接続することができた後、対話形式パスワードの

を聞いてきますあなたのスクリプトのdbに):

mysql --login-path=root YOUR_DB 
関連する問題