집 >데이터 베이스 >MySQL 튜토리얼 >'알 수 없는 인증 방법'으로 인해 원격 MySQL 연결이 실패하는 이유는 무엇입니까?
"알 수 없는 인증 방법"으로 인해 원격 MySQL 연결이 실패함
MySQL 서버에 대한 원격 연결을 설정하려고 하면 "알 수 없는 인증 방법"이라는 오류가 발생합니다. 인증 방법' 오류가 발생할 수 있습니다. 이 문제는 서버의 인증 메커니즘이 클라이언트의 인증 메커니즘과 호환되지 않을 때 발생합니다.
이 특별한 경우에는 로컬 시스템(MySQL 버전 5.5.27)에서 원격 서버(MySQL 버전 5.5)로 연결할 때 오류가 발생했습니다. .23). 근본적인 원인은 두 서버에서 사용하는 비밀번호 해시 방법이 서로 호환되지 않았기 때문입니다.
비호환성 해결
이 문제의 해결 방법은 비밀번호 해시를 업데이트하는 것입니다. 클라이언트가 사용하는 방법과 일치하도록 서버. 이 경우 MySQL 4.1 이상에서 사용하는 최신 41바이트 비밀번호 형식으로 업데이트해야 합니다.
비밀번호 해시 업데이트
ALTER USER 'yourusername'@'%' IDENTIFIED BY 'new_password';
여기서 'yourusername'은 MySQL 사용자 이름이고 'new_password'는 새 비밀번호를 입력하세요.
FLUSH PRIVILEGES;
변경 사항이 적용되도록 MySQL 서버를 다시 시작하세요.
클라이언트 코드 수정
비밀번호가 업데이트되면 다음과 같이 연결 코드를 수정하세요.
$dsn = 'mysql:host=184.173.209.193;dbname=my_db_name;charset=utf8'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_DIRECT_QUERY => true ); try { $online_dbh = new PDO($dsn, 'myusername', 'new_password', $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Congratulations!"; } catch (PDOException $e) { echo $e->getMessage(); }
PDO::MYSQL_ATTR_DIRECT_QUERY를 true로 설정하면 PDO가 더욱 안전한 연결 방식으로 인증 문제를 해결했습니다.
위 내용은 '알 수 없는 인증 방법'으로 인해 원격 MySQL 연결이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!