GNU/Linux >> Belajar Linux >  >> Linux

Uji kredensial MySQL dari baris perintah Linux?

mysql -h host -u user -p<whatever> -e"quit"

Ini memungkinkan Anda untuk menggunakan string koneksi yang sama yang Anda gunakan untuk mengirimkan kueri ke server secara terprogram. Anda dapat menambahkan || exit 1 sampai akhir untuk keluar otomatis pada argumen yang tidak valid. Anda mungkin juga ingin mengalihkan stderr ke /dev/null jika Anda tidak menyukai pesan kesalahan MySQL yang dibuat secara otomatis.


Anda dapat menggunakan perintah berikut (dengan asumsi bahwa Anda telah menyiapkan mysql di PATH Anda):

mysql -h host -u pengguna -p

Ganti saja host dan pengguna dengan nilai yang benar dan kemudian Anda akan dimintai kata sandi.


Jawaban @Phil dan Jawaban @Mr.Brownstone sudah cukup untuk pertanyaan Anda, jadi beri +1 untuk keduanya.

Untuk yang berikut ini, anggaplah Anda masuk dengan nama pengguna myuser

Setelah terhubung ke mysql, Anda harus menjalankan kueri berikut:

SELECT USER(),CURRENT_USER();
  • USER() melaporkan bagaimana Anda mencoba mengautentikasi di MySQL
  • CURRENT_USER() melaporkan bagaimana Anda diizinkan mengautentikasi di MySQL

Terkadang, mereka berbeda. Ini mungkin memberi Anda wawasan tentang mengapa Anda diizinkan masuk ke mysql.

Ini kueri lain yang perlu Anda jalankan:

SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';

Ini akan menunjukkan kepada Anda cara-cara di mana Anda diizinkan masuk sebagai myuser .

Jika Anda melihat 'myuser'@'localhost' , lalu Anda dapat mengautentikasi dari dalam Server DB.

Jika Anda melihat 'myuser'@'127.0.0.1' dan tidak melihat 'myuser'@'localhost' , maka Anda dapat mengautentikasi dari dalam Server DB lagi tetapi Anda harus menentukan --protocol=tcp dari baris perintah.

Jika Anda melihat 'myuser'@'%' , lalu Anda dapat melakukan login jarak jauh dari server mana pun.

Jika Anda melihat 'myuse'[email protected]'10.20.30,%' , maka Anda dapat melakukan login jarak jauh hanya dari 10.20.30.% netblock.

Setelah Anda melihat apa yang dimiliki 'mysql.user' untuk pengguna Anda, Anda mungkin ingin mengizinkan atau membatasi myuser dari logggin dengan satu cara dan bukan yang lain.

Jika Anda hanya ingin memeriksa apakah kata sandi untuk myuser adalah whateverpassword , Anda dapat melakukan hal berikut:

SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');

Anda dapat memeriksa dari baris perintah sebagai berikut:

PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`

Jika Anda bukan root dan ingin menguji pengguna saya saja, Anda dapat melakukan ini:

PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`

Jika Anda mendapatkan 1, kata sandi untuk pengguna saya diverifikasi sebagai baik.


Linux
  1. Konfigurasikan ruang kerja Linux dari jarak jauh dari baris perintah

  2. Cara Menjalankan Query MySQL/MariaDB Langsung dari Command Line Linux

  3. perintah su Linux

  1. 4 Cara Mengirim Lampiran Email dari Baris Perintah Linux

  2. potong tabel melalui baris perintah di Linux

  3. matlab mengeksekusi skrip dari baris perintah linux

  1. Program perangkat keras dari baris perintah Linux

  2. Cara Menghubungkan ke Database PostgreSQL Dari Baris Perintah di Linux

  3. Cari Torrents Dari Command Line Di Linux