2013-07-15 25 views
11

Đang cố gắng để kết nối với MySQL trên máy chủ web của tôi, sử dụng kết nối/Net C#/WinForms trong Visual Studio 2012 Update 3, nhưng nhận được thông báo lỗi dưới đây:Xác thực không thành sử dụng phương pháp mysql_native_password

Authentication to host '1.1.1.1' for user '[email protected]' using method 'mysql_native_password' failed with message: Access denied for user '[email protected]'@'2.2.2.2' (using password: YES)

string connectionString = "SERVER=1.1.1.1;PORT=3306;DATABASE=databaseName;[email protected];PASSWORD=mypassword;"; 

MySqlConnection connection = new MySqlConnection(connectionString); 
connection.Open(); 

tôi đang kết nối từ xa, có danh sách trắng IP của tôi (và ngay cả danh sách trắng tạm thời tất cả (%) để kiểm tra), ba kiểm tra tên người dùng và mật khẩu và IP.

tôi ban đầu thử tên người dùng mà không miền (username hơn [email protected]) nhưng nó đã cho tôi những lỗi dưới đây:

Authentication with old password no longer supported, use 4.1 style passwords.

Bất kỳ trợ giúp sẽ được nhiều đánh giá, cảm ơn!

+1

bản sao có thể có của [Xác thực bằng mật khẩu cũ không còn được hỗ trợ, sử dụng mật khẩu kiểu 4.1] (http://stackoverflow.com/questions/15772479/authentication-with-old-password-no-longer-supported-use-4 -1-style-passwords) – eggyal

+1

Không trùng lặp vì thông báo lỗi đầu tiên là thông báo lỗi. Thông báo lỗi thứ hai đó đã được giải quyết bằng cách thêm @ mydomain.com vào tên người dùng. –

+1

Thông báo lỗi của bạn ngụ ý rằng đó là điều đúng để làm, tức làrằng tên người dùng MySQL của bạn không chứa '@ mydomain.com'. – eggyal

Trả lời

4

Vấn đề của 'Máy chủ truy cập cơ sở dữ liệu từ xa'. "Bạn có thể cho phép các máy chủ web bên ngoài truy cập cơ sở dữ liệu MySQL của bạn bằng cách thêm tên miền của họ vào danh sách máy chủ có thể truy cập cơ sở dữ liệu trên trang web của bạn."

Truy cập MySql không được cấp cho địa chỉ IP của hệ thống mà ứng dụng đang chạy. (Trong trường hợp của bạn là '2.2.2.2').

Lưu ý: - '2.2.2.2' là địa chỉ IP công khai của bạn.

1

Hai điều có thể:

  1. MySQL là trường hợp nhạy cảm chắc chắn rằng trường hợp của Database= trong chuỗi kết nối của bạn phù hợp với tên cơ sở dữ liệu thực tế
  2. Bạn có thể phải cấp quyền cho người dùng.

Tôi hy vọng điều này sẽ giúp bạn.

+0

Vâng. Trường hợp nhạy cảm là trường hợp ở đây. Làm tốt lắm, anh bạn. –

1

Kiểm tra tệp cài đặt ứng dụng của bạn (hoặc bất cứ nơi nào bạn đã lưu trữ chuỗi kết nối).

Trong trường hợp của tôi, ứng dụng đang sử dụng chuỗi kết nối cũ (không hợp lệ). Tôi đã giả định rằng thay đổi tôi đã thực hiện trong mã của tệp cài đặt được phản ánh cho nhà thiết kế (của tệp cài đặt). Nhưng nó không phải!

0

Trong trường hợp mật khẩu cập nhật của tôi không được sử dụng. Tôi vừa tạo mật khẩu bằng Password Generator và copy nó nhưng quên click Change Password.

Ngoài ra, hãy kiểm tra người dùng được thêm vào cơ sở dữ liệu và có Đặc quyền.

Các vấn đề liên quan