>백엔드 개발 >PHP 문제 >php가 mysql에 접속이 안되면 어떻게 해야 하나요?

php가 mysql에 접속이 안되면 어떻게 해야 하나요?

coldplay.xixi
coldplay.xixi원래의
2020-11-04 10:08:263266검색

PHP가 mysql에 연결할 수 없는 문제에 대한 해결 방법: 먼저 [hosts] 파일을 찾아 기본적으로 읽기 전용으로 만든 다음 메모장으로 열고 파일 끝에 [127.0.0.1 localhost]를 추가하고 복사합니다. 데스크탑으로 갑니다.

php가 mysql에 접속이 안되면 어떻게 해야 하나요?

php에서 mysql에 연결할 수 없는 문제에 대한 해결 방법:

질문 1

오늘 노트북에 mysql과 php를 설치했는데 모든 것이 정상적으로 설치되었습니다(php@IIS7.5-fastCGI). 그런데 phpmyadmin을 이용하여 접속하여 테스트를 하면 "#2002 연결할 수 없습니다."라는 오류가 나옵니다. 다른 프로그램을 사용해도 같은 문제가 발생합니다.

확인해 보니 php의 mysql 확장이 제대로 설치되어 있고 mysql 서비스도 정상적으로 시작되는군요. 이상하네요. navicat을 이용해서 다시 연결했더니 연결이 되더군요. . php와 mysql간의 통신에 문제가 있는 것 같습니다.

바이두에서 검색한 결과 문제가 발견되었습니다.

mysql_connect() 함수 데이터베이스 서버(서버) 매개변수가 현재 localhost로 설정되어 있는데 127.0.0.1로 변경하면 정상적으로 접속이 가능합니다.

시스템 호스트 파일은 127.0.0.1에서 localhost까지의 해상도를 제공하지 않습니다.

해결 방법(win7 시스템을 예로 들어): C:\Windows\System32\drivers\etc\hosts 파일을 찾습니다. 기본값은 읽기 전용입니다. 데스크톱과 같은 다른 경로에 복사본을 복사해야 합니다. , 파일을 열고(열기 방법: 메모장) 파일 끝에 127.0.0.1 localhost127.0.0.1 localhost

如果已存在去掉其前面的“#”。

问题二

php脚本可以正常运行,如phpinfo()。

只要一出现“mysql_connect”函数,就没反应,也不报错。

$conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL数据库连接失败:".mysql_error());

 apache日志目录error.log中出现

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'

解决办法:

将“libmysql.dll”复制到apache的bin目录下。然后重启,观察error.log,如果错误消失,那恭喜了。

 另:网上资料也有说将““libmysql.dll””“php_mysql.dll”复制到windows/system32的。

问题三

 代码如下 

 $link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); 
  //以下代码省略 
?>

运行时出现如下提示: 

fatal   error:   call   to   undefined   function     mysql_connect()   in   var/www/html/mytest.php

解决方法:

1、php.ini中

  extension_dir设置为   "d:\apache2\php\ext "绝对路径,否则有些环境中会出错。

  打开下面两行功能扩展

  •   extension=php_mysql.dll     

  •   extension=php_mysqli.dll 

2、拷贝libmysql.dll(php目录下)和php_mysql.dll(php/ext目录下)至c:\windows\system32目录下(libmysql.dll必须为php目录下,比如我的为D:\apache2\php目录下的libmysql.dll,php_mysql.dll则在D:\apache2\php\ext) 

3、测试, 

  1>   先打开命令行 

A)依次点击“开始”菜单-> “mysql”-> “mysql5   server”-> “MySQL   Command   Line   Client” 

//如此步成功则mysql安全成功,失效则mysql安装失败,请卸载后重装 

B)输入密码 

//此步正常则说明   root账户的密码正确。失败则账号密码有错 

    2>   新建文件至主目录,并保存为testmysql.php,接着在浏览器中输入http://localhost/testmysql.php

를 추가합니다. 이미 존재하는 경우 앞에 있는 "#"을 제거합니다.

질문 2

phpinfo()와 같은 php 스크립트는 정상적으로 실행될 수 있습니다.
  • "mysql_connect" 함수가 나타나는 즉시 응답이나 오류가 발생하지 않습니다.

    예: $conn = mysql_connect("127.0.0.1","root","xxxx") 또는 die("MYSQL 데이터베이스 연결 실패:".mysql_error());
  • 아파치 로그 디렉터리

    PHP 경고가 error.log에 나타납니다. PHP 시작: 동적 라이브러리 'c:\\php\\ext\\php_mysql.dll'을 로드할 수 없습니다.

해결책:

복사 "libmysql.dll"을 아파치의 bin 디렉토리에 복사하세요. 그런 다음 다시 시작하고 error.log를 관찰하세요. 오류가 사라지면 축하합니다.

또 다른: 온라인 정보에 따르면 "libmysql.dll" 및 "php_mysql.dll"을 windows/system32에 복사하라고 나와 있습니다.

질문 3
🎜🎜 코드는 다음과 같습니다. 🎜
PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
🎜실행할 때 다음 프롬프트가 나타납니다. 🎜🎜치명적인 오류: var/www/html/mytest.php🎜🎜🎜에서 정의되지 않은 함수 mysql_connect()를 호출합니다. 🎜🎜🎜 1. php.ini의 🎜🎜 Extension_dir이 "d:\apache2\php\ext" 절대 경로로 설정되어 있습니다. 그렇지 않으면 일부 환경에서는 오류가 발생합니다. 🎜🎜 함수 확장의 다음 두 줄을 엽니다. 🎜🎜🎜🎜 Extension=php_mysql.dll 🎜🎜🎜🎜 Extension=php_mysqli.dll 🎜🎜🎜🎜2 libmysql.dll(php 디렉터리에 있음)과 php_mysql.dll(php)을 복사합니다. /ext 디렉토리 다음) c:\windows\system32 디렉토리(libmysql.dll은 php 디렉토리에 있어야 합니다. 예를 들어 제 것은 D:\apache2\php 디렉토리에 있는 libmysql.dll이고 php_mysql.dll은 D에 있습니다) :\apache2\php\ ext) 🎜🎜3. 테스트,
🎜🎜 1> 먼저 명령줄을 엽니다. 🎜🎜A) "시작" 메뉴-> "mysql5 서버"를 클릭합니다. -> "MySQL 명령줄 클라이언트" 🎜🎜//이 단계가 성공하면 mysql 보안에 성공한 것입니다. 그렇지 않으면 mysql 설치에 실패합니다. 제거하고 다시 설치하십시오. 🎜🎜B) 비밀번호를 입력하세요 🎜🎜//If 이 단계는 정상이며 루트 계정의 비밀번호가 정확하다는 의미입니다. 실패하면 계정 비밀번호가 잘못된 것입니다🎜🎜 2> 홈디렉토리에 새 파일을 생성하고 testmysql.php라는 이름으로 저장한 후 http://localhost/testmysql.php(혹은 http)를 입력하세요. :/ /localhost:81/testmysql.php) 🎜🎜작동하지 않으면 Apache가 php 및 mysql 메소드를 로드했는지 확인하십시오. 🎜🎜apache에서 php5를 지원하려면 httpd.conf 파일에 다음 세 줄을 추가하십시오. 🎜rrreee🎜php.ini에서 다음 두 줄의 세미콜론을 제거하세요. 🎜🎜🎜🎜extension=php_mysql.dll 🎜🎜🎜🎜extension=php_mysqli.dll🎜🎜🎜🎜 php_mysql.dll 및 libmysql.dll을 system32에 복사하세요🎜 🎜 아파치 서버 다시 시작🎜 🎜🎜관련 영상 추천 : 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 php가 mysql에 접속이 안되면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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