GNU/Linux >> Linux の 問題 >  >> Linux

root パスワードを使用せずにコマンドラインから MySQL に接続しますか?

解決策 1:

MySQL と PostgreSQL の両方で、ローカル構成ファイルでユーザーとパスワードを指定できます。 MySQL の場合は .my.cnf、PostgreSQL の場合は .pgpass です。これらのファイルは、ホーム ディレクトリ (つまり、~/.my.cnf) にある必要があります。

.my.cnf:

[mysql]
user=user
password=password

.pgpass:

host:port:database:user:password

ここではワイルドカード エントリを使用して、******* を任意のフィールドに置き換えることができます。

PS:コマンドラインでパスワードを指定しないでください! これは ps で完全に表示できます 他のユーザーに属するプロセスを表示しないようにシステムが構成されていない場合。

@thinice:これらのファイルを本当に安全に作成したい場合は、次のことを行う必要があります:

umask 077
touch .my.new.config
umask 022 # or whatever was your default

このようにして、ファイルは最初から安全なアクセス許可で作成され、盗聴者がパスワードを盗み出す可能性はありません.

いずれにせよ、PostgreSQL は 0600 より高いパーミッションを持つファイルの使用を拒否します。

解決策 2:

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

安全なパスワードを使用してコマンドラインを実行するにはどうすればよいですか??構成エディターを使用してください!!!

mysql 5.6.6 以降では、パスワードを構成ファイルに保存してから、次のような cli コマンドを実行できます....

mysql --login-path=storedPasswordKey ....

--login-path は変数を置き換えます... ホスト、ユーザー、およびパスワード。すばらしいです!

解決策 3:

パスワードを引用符で囲まないでください。引用符を使用すると、パスワードの一部と見なされます。

解決策 4:

MYSQL_USER="root"
MYSQL_PASSWORD="PASSWORD"
DBNAME="DB_NAME"

mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE $DBNAME;" 2> /tmp/error1

STATUS=$? 
if [ $STATUS -eq 0 ];
then 
    echo -e "Database '$DBNAME' is created"
elif (grep -i "^ERROR 1007" /tmp/error1 > /dev/null);
then
    echo -e "Database '$DBNAME' already exists"
else
    echo -e "Failed to create database '$DBNAME'"
fi

rm -r /tmp/error1 

これでうまくいきますありがとう


Linux
  1. コマンドラインを使用してMySQLデータベースをバックアップおよび復元する方法

  2. SuなしでSudoによってrootパスワードを変更しますか?

  3. root権限なしでコマンドラインを使用して、Linuxでハードドライブの合計サイズを取得しますか?

  1. Linux:コマンドラインから日付を設定

  2. mysql 5.7 の新規インストールで root パスワードを設定する

  3. パスワードなしで Linux root ユーザー mysql root アクセスを許可する

  1. コマンドラインを使用してMySQLでデータベースを作成する方法

  2. MySQLまたはMariaDBのルートパスワードをリセットする方法

  3. MySQLルートパスワードをリセットする