Tại sao cài đặt .my.cnf của tôi không hoạt động?


15

Tôi có một tệp .my.cnf trong thư mục nhà của mình trên máy tính để bàn bao gồm:

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

Nếu tôi nhớ lại chính xác, trước khi nâng cấp từ Ubuntu 10.04 lên 11.04, tôi đã có thể sử dụng lệnh

mysql dbid

Để kết nối trực tiếp với cơ sở dữ liệu

Nhưng hôm nay tôi gặp lỗi này:

ERROR 1049 (42000): Unknown database 'dbname'

Tôi đã làm điều gì sai ư?


Tôi đã gắn cờ đây là "không phải là một câu hỏi thực sự" dựa trên câu trả lời mà tôi đã đưa vào bản cập nhật. Vấn đề phải làm với các thay đổi được thực hiện cho địa chỉ IP thay vì phải thực hiện với cơ sở dữ liệu. Tôi không thực sự chắc chắn nếu nó nên được đóng lại hoặc nếu tôi nên cung cấp bản cập nhật như là câu trả lời.
David LeBauer

Thường thì nó là đủ để nhận xét các tài khoản, không nên được sử dụng với "#".

Tôi không hiểu ý của bạn - làm thế nào để trả lời câu hỏi này?
David LeBauer

Câu trả lời:


22

Tôi không chắc chắn .my.cnf trước đây của bạn đã từng hoạt động như thế nào và tôi thực sự chưa bao giờ sử dụng các tệp này trước đây (chủ yếu vì tôi không biết về chúng). Vì vậy, sau một chút nghiên cứu, tôi đã tìm thấy liên kết này và tìm ra ~ / .my.cnf sau đây hoạt động với tôi:

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

và lệnh đọc nó:

mysql --defaults-group-suffix=dbid

Một vài điều cần chỉ ra (những điểm nổi bật từ bài viết được liên kết):

  • nhóm phải được 'khách hàng' đứng trước để được đọc bởi mysql
  • phải theo sau bất kỳ nhóm [khách hàng] nào, nếu không nó sẽ bị ghi đè

Tôi đã thử nghiệm điều này trên mysql 5.5 trên máy Mac, hoạt động rất tốt. Và bây giờ tôi biết về họ, tôi sẽ sử dụng chúng!

CẬP NHẬT Sau khi tôi thiết lập điều này, tôi nhận ra rằng dòng lệnh mysql --defaults-group-suffix=dbidhơi lớn. Vì vậy, như đã thêm phần thưởng, giả sử bạn đang chạy Linux / Mac / Etc, hãy làm điều này:

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

Trong trường hợp dbidlà tên của nhóm hậu tố của bạn.


Xin chào @DTest, những thứ tốt trong câu trả lời của bạn !!! +1 (Chúc mừng BTW trên huy hiệu mysql của bạn)
RolandoMySQLDBA

Tôi sẽ nâng cấp cái này, sau đó tôi nói Wow Dejavu. Đây là từ vài tháng trước.
RolandoMySQLDBA

0

Quản trị viên cơ sở dữ liệu của tôi đã giúp tôi phát hiện ra vấn đề và vì vậy đây là giải pháp cho vấn đề ban đầu đã đặt ra câu hỏi này:

Vấn đề (theo tôi hiểu) là cơ sở dữ liệu chỉ cho phép truy cập vào máy tính dựa trên các địa chỉ IP cụ thể. Địa chỉ IP của tôi đã thay đổi khi tôi có một máy tính mới và tôi có các mật khẩu khác nhau cho các tài khoản đã được thiết lập với các địa chỉ IP khác nhau, theo lời của quản trị viên cơ sở dữ liệu của tôi

Tôi đã có một vài tên người dùng khác nhau cho bạn dựa trên user@olddesktopip.edu, user@newdesktopip.edu và địa chỉ IP của bạn. Các mật khẩu không giống nhau đối với tất cả những gì gây ra nhầm lẫn, đó là lỗi của tôi vì sự cố.


0

Là một bản cập nhật cho bản cập nhật của Derek Downey, đây là cách tôi sử dụng tệp ~ / .my.cnf phổ biến trên các máy tính Linux khác nhau, tự động chọn phần phù hợp theo tên máy chủ:

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

Sau đó, tất cả tôi phải gõ trên dòng lệnh là mysql.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.