ii7+php5.3.3 phpinfo() 可以显示但是无法连接数据库
http://123.7.54.129:8883/php.php请高手指点

解决方案 »

  1.   

    用的是什么数据库?对应该数据库的php模块有没有加载?
    你的代码和具体错误信息是什么?
      

  2.   

     phpinfo() mysql部分是mysql
    MySQL Support enabled 
    Active Persistent Links  0  
    Active Links  0  
    Client API version  mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $  Directive Local Value Master Value 
    mysql.allow_local_infile On On 
    mysql.allow_persistent On On 
    mysql.connect_timeout 60 60 
    mysql.default_host no value no value 
    mysql.default_password no value no value 
    mysql.default_port no value no value 
    mysql.default_socket no value no value 
    mysql.default_user no value no value 
    mysql.max_links Unlimited Unlimited 
    mysql.max_persistent Unlimited Unlimited 
    mysql.trace_mode Off Off 
      

  3.   

    用数据库直接连接可以吗?php中连接数据库的代码是怎么样的?
      

  4.   

    经历了4天的折磨,问题已经解决。总结如下
    第一部分:修改或者重置root密码
    第二部分:验证mysql运行是否正常
    第三部分:查看phpinfo()在安装mysql后,默认密码时空
    修要修改密码
    方法一:使用向导
    方法二:在使用向导时出现1045错误,一般是密码错误;
    .Windows环境下: 1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程 
    2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\\mysql\\ , CMD进入命令行 
    3. 运行 d:\\mysql\\bin\\mysqld-nt --skip-grant-tables 启动mysql,关闭权限的检查 
    4. 运行 d:\\mysql\\bin\\mysqladmin -u root flush-privileges password "newpassword" 重设root密码 
    5. 重新启动mysql服务 或者
    (参考:http://topic.csdn.net/u/20090515/21/2B3C9A12-D8A5-4BB1-9895-6069CEF5AEF8.html)
    运行
    mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tablesmysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;  
    mysql> FLUSH PRIVILEGES;  
    mysql> quit  重要提示:要先了解mysql的命令,很多时候在需要密码的时候没有输入密码也会出现1045错误。
    例如向网上说在设定密码后的直接mysql命令就会出现1045错误。第二部分:
    在密码修改后,测试mysql
    测试一:
    运行结果如下是正常的
    C:\Users\Administrator>mysqlshow -u root -p
    Enter password: ******
    +--------------------+
    | Databases |
    +--------------------+
    | information_schema |
    | mysql |
    | test |
    +--------------------+
    测试二:
    运行结果如下是正常的
    C:\Users\Administrator>mysqlshow -u root -p mysql
    Enter password: ******
    Database: mysql
    +---------------------------+
    | Tables |
    +---------------------------+
    | columns_priv |
    | db |
    | event |
    | func |
    | general_log |
    | help_category |
    | help_keyword |
    | help_relation |
    | help_topic |
    | host |
    | ndb_binlog_index |
    | plugin |
    | proc |
    | procs_priv |
    | servers |
    | slow_log |
    | tables_priv |
    | time_zone |
    | time_zone_leap_second |
    | time_zone_name |
    | time_zone_transition |
    | time_zone_transition_type |
    | user |
    +---------------------------+第三部分:
    如果php已经配置完成,使用phpinfo()查看配置
    出现
    mysql
    MySQL Support enabled 
    Active Persistent Links  0  
    Active Links  0  
    Client API version  mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $  
    表示php已经可以连接mysql第四部分:连接mysql
    网上的代码是<?php
    $link=mysql_connect('localhost','root','789456'); 
    if(!$link)
        echo "fail"; 
    else
        echo   "success "; 
    mysql_close(); 
    ?>
    害的我好苦呀,测试N次都不行
    后来修改为IP127.0.0.1登录<?php
    $link=mysql_connect('127.0.0.1','root','789456'); 
    if(!$link)
        echo "fail"; 
    else
        echo   "success "; 
    mysql_close(); 
    ?>
    就连接上了。在安装DeDecms时也是使用127.0.0.1才可以连接数据库。我是一个菜鸟,刚刚自己用windows2008 iis7 php5.3.3 mysql5.1 配置了一个PHP平台,把遇到的问题总结如上。还有两个个问题希望高手指点
    一:为什么要用127.0.0.1代替localhost才可以连接数据库?
    二:Deprecated: Function set_magic_quotes_runtime() is deprecated in D:\IIS root\php2\include\common.inc.php on line 8 错误怎样解决
      

  5.   

    问题1,因为你的数据库没有绑定localhost
    问题2,PHP不推荐使用set_magic_quotes_runtime(),因为可能会影响其他已经在运行的程序,请在php.ini中设置magic_quotes。
      

  6.   

    1.估计是你系统的网络问题,或你安装mysql时候的问题。
    安装mysql时可以设置root帐号的帐号名及密码的2.基本上可以不管它。只是一个过时提示。
    error_reporting(E_ERROR | E_PARSE);
    set_magic_quotes_runtime(0);
    防在页面前面。后面再进行你需要的错误处理
      

  7.   

    问题一:
    我在网上看到过,类似的说法。
    可以详细说明怎样绑定吗问题二;
    参考
    http://topic.csdn.net/u/20090817/12/1cc8e6fa-9f32-4a14-b66f-4c30693ba455.html
    在config.php 替换了一行
    define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", '/', dirname(__FILE__) ) );  
    提示消失。那位能解释为什么?