>백엔드 개발 >PHP 문제 >PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2022-11-19 10:25:535058검색

php를 사용하여 데이터베이스 연결 실패에 대한 해결 방법: 1. php.ini 구성 파일을 열고 "extension=php_mysql.dll" 앞의 주석 세미콜론을 제거한 다음 "php_mysql.dll"의 절대 경로를 다음을 통해 지정합니다. 2. mysql my.ini 구성 파일을 수정합니다. 3. 데이터 세트 문자 세트를 수정합니다.

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 하나요?

PHP가 mysql에 연결할 때 발생하는 Pips(솔루션 사용, 개인 테스트가 효과적임)

PHP가 mysql에 연결할 때 발생하는 Pips

환경: win10 + PHP5.48 + Apache2.2 + Mysql8.017

PHP 연결 인스턴스

<?php     $link = mysql_connect("localhost", "myuser", "mypasswd");
    #myuser: 用户名    #mypasswd: 密码    var_dump($link);
    mysql_close();?>

Pit 1 정의되지 않은 함수 mysql_connect()

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

원인: mysql_connect() 함수가 정의되지 않았으며 php.ini 구성 파일에서 활성화되어 있지 않습니다

해결 방법:

1.1 php.ini 기능 구성

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?
1.1.1 Extension=php_mysql.dll 앞의 주석 세미콜론을 제거합니다.
1.1.2 php_mysql의 절대 경로를 지정합니다. 확장자를 통한 .dll

1.2 구성 파일 경로

1.2.1 php.ini 파일을 c:windowssystem32

1.3에 복사합니다. Apache 서비스를 다시 시작합니다(다시 시작하는 방법은 알려드리지 않습니다. 그렇지 않으면 모르시면 이 글이 도움이 되지 않습니다)

Pit 2 서버가 클라이언트에게 알려지지 않은 인증 방법을 요청했습니다

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

원인: mysql8의 일관성 없는 비밀번호 잠금 메커니즘으로 인해 발생합니다. x

mysql 8.x 이후에는 이전 mysql_native_password 대신 caching_sha2_password가 기본 인증 플러그인입니다.

Solution

1.1 mysql

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

의 my.ini 구성 파일을 수정하세요. 기본 확인 방법이 caching_sha2_password인 것을 볼 수 있는데 여기서는 mysql_native_password

로 수정되었습니다. 1.2 해당 항목 보기 users in mysql 인증 플러그인

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

루트 사용자의 인증 플러그인이 mysql_native_password

로 변경된 것을 확인할 수 있습니다. 인증 방법이 변경되지 않은 경우 다음 작업을 수행하세요

# 登陆mysqlmysql -uroot -p# 使用mysql数据库use mysql;# 修改身份验证插件ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

坑3  字符集错误 sever sent charset unknowd to the client ,Please report to the decelopers

PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?

原因: MySQL8更换了默认的服务器字符集,mysql8.x的字符集character-set-server默认是utf8mb4,不再是5.x时代的utf8了

解决方法:

修改mysql的my.ini配置文件,具体修改条目如下:(这里只展示了需要修改的条目,原配置文件内容很多)

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8

切记:任何每一次的修改,都需要重启Apache服务,以及mysql服务!!!

推荐学习:《PHP视频教程

위 내용은 PHP를 사용하여 데이터베이스에 연결하지 못한 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.