zoukankan      html  css  js  c++  java
  • php无法连接mysql问题解决方法总结

     
     

    本文章总结了在php开发中可能会常常碰到的一些php连接不了mysql数据库的一些问题总结与解决方法分享,有需要的朋友可参考一下。


    问题一

    今天给本本装上mysql和php,一切安装都很正常(php@IIS7.5-fastCGI)。但用phpmyadmin连接测试时却出现“#2002无法连接”的错误,用其它程序也是同样问题。
    检查了下,php的mysql扩展正确安装,mysql服务正常启动--那就奇了怪了。又用navicat连接,居然连上了。。看来是php和mysql间的通讯出了问题。
    百度了一下,问题被揪出来了:
    mysql_connect()函数数据库服务器(server)参数当前设置为localhost,但当其更改为127.0.0.1后又可以正常访问。
    系统hosts文件未提供127.0.0.1到localhost的解析。

    解决方法(以win7系统为例):找到C:\Windows\System32\drivers\etc\hosts文件,默认为只读,你需要复制一份到其他路径如桌面,打开文件(打开方式:记事本),在文件末尾添加:

    127.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   (或者http://localhost:81/testmysql.php


    如果不行查看一下apache是否加载了php与 mysql方法


    apache中支置对php5的支持httpd.conf文件中加入下面三行
    PHPIniDir "D:/ccopen/php5/"
    LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
    AddType application/x-httpd-php .php  
    php.ini中去掉下面两行分号
    extension=php_mysql.dll   
    extension=php_mysqli.dll
    将php_mysql.dll和libmysql.dll拷到system32
    重起apache服务器

  • 相关阅读:
    委托和事件
    Entity Framework应用:导航属性
    Entity Framework应用:根据实体的EntityState状态实现增删改查
    Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查
    Entity Framework应用:EntityFramework DataBase First模式
    dapper支持操作函数和事物
    单元测试
    IOC容器:Unity
    MVC教程九:异常过滤器
    MVC教程八:缓存过滤器
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4243559.html
Copyright © 2011-2022 走看看