GNU/Linux >> Belajar Linux >  >> Linux

Terhubung ke MySQL melalui baris perintah tanpa menggunakan kata sandi root?

Solusi 1:

Baik untuk MySQL dan PostgreSQL Anda dapat menentukan pengguna dan kata sandi Anda di file konfigurasi lokal. .my.cnf untuk MySQL dan .pgpass untuk PostgreSQL. File-file ini harus ada di direktori home Anda (mis. ~/.my.cnf).

.my.cnf:

[mysql]
user=user
password=password

.pgpass:

host:port:database:user:password

Anda dapat memiliki entri karakter pengganti di sini, menggantikan kolom apa pun dengan *******.

PS:JANGAN PERNAH MENENTUKAN SANDI PADA BARIS PERINTAH! Ini dapat terlihat sempurna dengan ps jika sistem Anda tidak dikonfigurasi untuk tidak menampilkan proses milik pengguna lain.

@thinice:Jika Anda ingin membuat file tersebut benar-benar aman, Anda harus melakukan:

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

Dengan cara ini file akan dibuat dengan izin yang aman sejak awal dan tidak ada penyadap yang memiliki kesempatan untuk mencuri kata sandi Anda.

PostgreSQL akan menolak untuk menggunakan file dengan izin lebih tinggi dari 0600.

Solusi 2:

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

Bagaimana cara menjalankan baris perintah dengan kata sandi yang aman??gunakan editor konfigurasi!!!

Pada mysql 5.6.6 Anda dapat menyimpan kata sandi dalam file konfigurasi dan kemudian menjalankan perintah cli seperti ini....

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

--login-path menggantikan variabel... host, pengguna DAN kata sandi.sangat baik!

Solusi 3:

Jangan menaruh tanda kutip di sekitar kata sandi karena jika Anda melakukannya, tanda kutip dianggap sebagai bagian dari kata sandi.

Solusi 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 

Ini akan berhasilTerima kasih


Linux
  1. Dapatkan ukuran total hard drive saya di Linux, menggunakan baris perintah, tanpa izin root?

  2. Mengizinkan eksekusi perintah otomatis sebagai root di Linux menggunakan SSH

  3. Mengatur kata sandi root di instalasi mysql 5.7 baru

  1. Cara Membuat Database di MySQL Menggunakan Command Line

  2. Cara Mengatur Ulang Kata Sandi Root MySQL Atau MariaDB

  3. Izinkan pengguna root linux akses root mysql tanpa kata sandi

  1. Cara Backup dan Restore Database MySQL Menggunakan Command Line

  2. Ubah Kata Sandi Root Dengan Sudo, Tanpa Su?

  3. Cara Reboot Linux Menggunakan Command Line