Saya mencoba untuk membuat klien mysql terhubung ke server mysql tanpa memerlukan kata sandi untuk diberikan secara interaktif. Langkah yang diambil:
1) Pertama buat file mylogin.cnf
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
2) File berhasil dibuat:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
3) Terhubung menggunakan klien mysql
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
Apakah ada nilai / konfigurasi default di suatu tempat yang membuat klien mengabaikan kata sandi di mylogin.cnf? Properti pengguna dan host dibaca dengan benar dari file.
Saya dapat terhubung dengan baik jika saya memberikan kata sandi pada baris perintah:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
Versi klien MySQL 5.6.22, versi MySQL Server 5.6.22, keduanya di Oracle Linux 6. Klien dan server berada di host yang berbeda.
Terima kasih
-pyour_pass
atau--password=your_pass
pada baris perintah (...) Ini nyaman tetapi tidak aman ."gunakan perintah berikut untuk mengatur jalur masuk terlebih dahulu
dan kemudian gunakan perintah di bawah ini untuk login mysql
Bantuan tentang opsi jalur masuk mysql dapat dilihat oleh
sumber
Saya memiliki masalah yang sama dengan OP, tetapi jawaban di utas ini membingungkan saya. Tautan Vinay Mandala sebenarnya bekerja untuk saya. Diposting di sini untuk kejelasan.
Masalah saya:
Itu membuktikan bahwa
mysql_config_editor
tidak menangani karakter khusus dalam kata sandi dengan benar.Larutan:
Ketika
mysql_config_editor
diminta kata sandi, pastikan Anda mengelilingi kata sandi dengan tanda kutip ganda (") . Setelah itu, Anda dapat masuk dengan baik.sumber
Saya mendapatkan kesalahan ini, kecuali tertulis (menggunakan kata sandi: YA)
Alasan seperti yang disebutkan oleh Giovanni adalah karena "#" di kata sandi. Saya menemukan bahwa solusinya adalah menyisipkan tanda kutip di sekitar kata sandi Anda ketika diminta. Pembatasan yang sama ada dengan kata sandi teks biasa menggunakan .my.cnf.
sumber
Jawaban Nawaz benar. Saya punya sedikit untuk ditambahkan. Saya sarankan Anda melakukan beberapa upaya dengan variabel lingkungan MYSQL_TEST_LOGIN_FILE untuk membuat file konfigurasi baru, kalau-kalau file default rusak. Gunakan juga
--no-defaults
untuk melewati.cnf
file. Jika kata sandi berisi char#
,mysql login-path
tidak berfungsi.sumber
mysql
perintah execmysql
? Jika tidak, ganti pemilikmylogin.cnf
dan itu harus bekerja :)Saya menghadapi masalah yang sama dengan poster aslinya. Saya menduga itu ada hubungannya dengan karakter dalam kata sandi yang tidak dienkripsi / didekripsi dengan benar.
Untuk mengonfirmasi coba ubah kata sandi menjadi sesuatu yang sederhana dan lihat apakah masalah ini hilang.
sumber
Saya punya masalah dengan skrip shell. Skrip saya mengubah nilai $ HOME dan ini menyebabkan --login-path = *** tampaknya diabaikan. Ketika saya berhenti mengubah nilai $ HOME maka mulai bekerja.
sumber
CATATAN jika Anda mencoba menjalankan di
path
bawah pengguna linuxroot
- Anda tidak bisa hanya menggunakansudo
. Anda harus masuk sebagai root IEJuga seperti yang disebutkan dalam posting lain di sini .. Anda harus menggunakan tanda kutip ganda di sekitar
mysql
kata sandi Anda jika mengandung sesuatu selain karakter alfanumerik.sumber