2013-08-02 62 views
10

Tôi đã tìm kiếm tốt nhưng chưa tìm thấy câu trả lời cho phép tôi khắc phục vấn đề này.Liên kết ODBC MySQL không do "giao thức xác thực bị từ chối"

Tôi đang cố gắng kết nối từ MS Access với cơ sở dữ liệu MySQL 5.2 trên máy chủ từ xa.

Tôi đã thiết lập tài khoản người dùng đã chọn, chèn, cập nhật, xóa đặc quyền trên bảng được đề cập. Tuy nhiên, khi tôi cố gắng để kết nối với tài khoản này, tôi nhận được:

kết nối không thành công [HY000] [MySQL] [ODBC 5.2 (w) Driver] Kết nối bằng cũ (pre-4.1.1) giao thức xác thực từ chối (tùy chọn khách hàng secure_auth 'kích hoạt)

Khi tôi cố gắng truy cập với tài khoản root, kết nối hoạt động, mà làm cho tôi tự hỏi tại sao nó trả lại một lỗi giao thức xác thực, vì người lái xe cùng đang được sử dụng - tất cả những gì đang thay đổi là tài khoản được sử dụng - vì vậy chắc chắn sẽ chuyển mật khẩu qua cùng một giao thức xác thực? Tại sao một kết hợp tên người dùng/mật khẩu lại trả về lỗi giao thức chứ không phải lỗi khác?

Dường như lỗi này rất phổ biến, nhưng tôi chưa tìm thấy phản hồi đưa ra giải pháp rõ ràng. Bạn có thể giúp?

Trả lời

9

Vấn đề ở đây là do hai vấn đề đồng thời.

  1. Trên máy chủ từ xa, cài đặt chung OLD_PASSWORDS được đặt thành 1 - có nghĩa là mật khẩu đã được băm theo phương pháp trước 4.1.
  2. tài khoản gốc đã được mã hóa trong phương pháp băm mới hơn mặc dù cài đặt chung (có lẽ nó đã được nhập trước khi tham số này được đặt), nghĩa là nó đã được cấp quyền truy cập thông qua kết nối ODBC vì băm mới được nhận dạng.

Cài đặt chung gây ra hàm PASSWORD() trong MySQL để băm bất kỳ giá trị đã nhập nào trong phương thức cũ thay vì phương thức mới như được cho là.

Tôi giả định rằng DBA đã đặt OLD_PASSWORDS 1 cho một lý do chính đáng như vậy là một giải pháp tôi sử dụng

old_passwords Set phiên = 0; đặt mật khẩu cho 'người dùng' @ '%' = mật khẩu ('mypassword');

Sử dụng mật khẩu() chức năng đã không làm việc trước đây vì OLD_PASSWORDS khung cảnh toàn cầu = 1 gây ra nó để sử dụng băm giống như old_password() chức năng. Cài đặt phiên cho phép nó tạo mật khẩu chính xác.

1

Tôi đã nhận được thông báo lỗi tương tự, trong khi đồng nghiệp của tôi không gặp bất kỳ sự cố nào. Tôi đã cố gắng sử dụng trình điều khiển ODBC MySQL 5.1.13 (phiên bản GA mới nhất có sẵn) và cô đã có 5.1.12. Khi tôi cài đặt 5.1.12 thay vào đó, tôi không có vấn đề gì.

+0

Câu trả lời hay, trang web đang hoạt động! WOO !!!! –

3

"Khi tôi cài đặt 5.1.12 thay vào đó, tôi không gặp sự cố"

Ditto! Chỉ cần xác thực thành công vào MySQL bằng cách sử dụng trình điều khiển ODBC phiên bản 5.1.12.Tôi không có ý tưởng tại sao MySQL không cung cấp một cách tốt hơn để xử lý lỗi này w/trình điều khiển mới hơn của nó, nhưng tôi có thể xác nhận rằng bằng cách sử dụng trình điều khiển ODBC 5.1.12 DOES làm việc.

Đây là liên kết đến trang cài đặt trình điều khiển ODBC 5.1.12.

http://dev.mysql.com/downloads/file.php?id=411741