> 백엔드 개발 > PHP 문제 > PHP 비호환 문제를 해결하는 방법

PHP 비호환 문제를 해결하는 방법

藏色散人
풀어 주다: 2023-03-08 06:12:02
원래의
2983명이 탐색했습니다.

PHP 비호환성에 대한 해결 방법: 1. "my.cnf"를 변경하여 문자 집합을 지정합니다. 2. "...로 식별된 사용자 'root'@'%' 변경"을 통해 기존 계정 비밀번호를 업데이트합니다. MySQL8.0.

PHP 비호환 문제를 해결하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터.

PHP와 Mysql8 간의 비호환 문제 요약

Mysql8.0을 설치한 후 원래 PHP와 함께 작업해야 합니다. 그런데 원래 Mysql5.1에서 잘 작동하던 코드에서 갑자기 오류가 발생하는 것 같습니다. 필요합니다. 추가 작업을 수행하십시오.

报错:PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers
로그인 후 복사

온라인 정보에 따르면 Mysql8.0은 기본 문자 집합을 utfmb4로 변경했기 때문에 PHP뿐만 아니라 클라이언트와의 통신을 인식할 수 없습니다. 문자 집합을 지정하려면 my.cnf를 변경해야 합니다.

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
报错:PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]
로그인 후 복사

온라인 정보에 따르면 사용자 신원 인증을 위한 암호화 방법이 호환되지 않아 발생합니다. mysql8.0의 기본 방법은 caching_sha2_password이며, 이전 버전의 암호화 방법은 mysql_native_password입니다. .

권장: "PHP 비디오 튜토리얼"

설정할 암호화 방법을 지정할 수 있습니다:

# 新建用户,使用旧版加密方式设置密码
CREATE USER username@localhost identified with mysql_native_password by 'password';
# 更新已存在的账号密码加密方式
alter user 'root'@'%' identified with mysql_native_password by 'password';
로그인 후 복사

하지만 더 좋은 방법은 기본 구성 줄을 추가하는 것입니다:

[mysqld]
default_authentication_plugin = mysql_native_password
报错:Access denied for user 'root'@'localhost' (using password: YES)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oss'@'%';
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
로그인 후 복사

다른 사용자에게 권한을 추가할 때, 아니요 오류가 보고됩니다. 이유는 실수로 루트 사용자를 삭제했기 때문입니다. 이 문제를 해결하기 위한 많은 문서가 인터넷에 있지만 내가 다시 설정한 루트 사용자는 Grant_priv:Y를 가지고 있지만 여전히 권한을 성공적으로 할당할 수 없습니다. 그게 나에게 두통을 준다.

해결 방법: 다시 설치, Mysql8.0 설치 방법은 기사를 참조하세요.

요약

mysql8.0의 새로운 기능은 무엇입니까? 설명서를 자세히 확인하지는 않았지만 호환성 때문에 먼저 어려움을 겪었습니다. 다행히 이 세 가지 문제를 해결한 후 PHP 프로그램이 성공적으로 실행되었습니다. 끝났습니다. PHP5.1을 PHP7로 업그레이드하겠습니다.

위 내용은 PHP 비호환 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿