Mengapa pengaturan .my.cnf saya tidak berfungsi?

15

Saya memiliki file .my.cnf di direktori home saya di desktop saya yang mencakup:

[dbid]
user = myusername
password = mypassword
database = dbname
host = server.location.com

Jika saya ingat dengan benar, sebelum memutakhirkan dari Ubuntu 10.04 ke 11.04, saya dapat menggunakan perintah

mysql dbid

Untuk terhubung langsung ke database

Tapi hari ini saya mendapatkan kesalahan ini:

ERROR 1049 (42000): Unknown database 'dbname'

Apakah saya melakukan sesuatu yang salah?

David LeBauer
sumber
Saya menandai ini sebagai 'bukan pertanyaan nyata' berdasarkan jawaban yang telah saya sertakan dalam pembaruan. Masalahnya ada hubungannya dengan perubahan yang dilakukan pada alamat ip daripada harus dilakukan dengan database. Saya tidak yakin apakah itu harus ditutup atau apakah saya harus memberikan pembaruan sebagai jawabannya.
David LeBauer
Sering kali cukup dengan mengomentari akun, yang seharusnya tidak digunakan dengan "#".
Saya tidak mengerti maksud Anda - bagaimana ini menjawab pertanyaan?
David LeBauer

Jawaban:

23

Saya tidak yakin bagaimana dulu .my.cnf Anda dulu berfungsi, dan saya sebenarnya belum pernah menggunakan file-file ini sebelumnya (terutama karena saya tidak tahu tentang mereka). Jadi setelah sedikit riset, saya menemukan tautan ini dan muncul dengan ~ / .my.cnf berikut yang bekerja untuk saya:

[clientdbid]
password = mypass
database = dbname
host = server.location.com

dan perintah yang membacanya:

mysql --defaults-group-suffix=dbid

Beberapa hal yang perlu diperhatikan (sorotan dari artikel yang ditautkan):

  • grup harus didahului oleh 'klien' untuk dibaca oleh mysql
  • harus mengejar grup [klien] apa pun, jika tidak maka akan ditimpa

Saya menguji ini pada mysql 5.5 pada Mac, bekerja dengan baik. Dan sekarang saya tahu tentang mereka, saya akan menggunakannya!

PEMBARUAN Setelah saya mengatur ini, saya menyadari bahwa baris perintah mysql --defaults-group-suffix=dbidagak besar. Jadi sebagai bonus tambahan, anggap Anda menjalankan Linux / Mac / Etc, lakukan ini:

echo 'alias mysql_dbid="mysql --defaults-group-suffix=dbid"' >> ~/.profile

Di mana dbidnama grup sufiks Anda.

Derek Downey
sumber
Hai @Dest, Good Stuff dalam jawaban Anda !!! +1 (BTW Selamat atas lencana mysql Anda)
RolandoMySQLDBA
Saya akan memilih yang ini, kemudian saya berkata Wow Dejavu. Ini dari beberapa bulan yang lalu.
RolandoMySQLDBA
0

Admin basis data saya membantu saya mengungkap masalah, dan inilah solusi untuk masalah awal yang memicu pertanyaan ini:

Masalahnya (seperti yang saya mengerti) adalah bahwa database hanya memungkinkan akses ke komputer berdasarkan alamat IP tertentu. Alamat IP saya telah berubah ketika saya mendapatkan komputer baru, dan saya memiliki kata sandi yang berbeda untuk akun yang telah diatur dengan alamat IP yang berbeda, dalam kata-kata administrator basis data saya

Saya memiliki beberapa nama pengguna yang berbeda di sana untuk Anda berdasarkan pada [email protected], [email protected], dan alamat IP Anda. Kata sandi tidak sama untuk mereka semua yang menyebabkan kebingungan, itu adalah kesalahan saya.

David LeBauer
sumber
0

Sebagai pembaruan untuk pembaruan Derek Downey, ini adalah bagaimana saya menggunakan file ~ / .my.cnf yang umum di berbagai komputer Linux, memilih bagian yang sesuai sesuai dengan nama host secara otomatis:

echo 'alias mysql="mysql --defaults-group-suffix=$HOST"' >> ~/.bash_aliases

Setelah itu, yang harus saya ketik pada command line adalah mysql.

Christian Pietsch
sumber