前面的@去掉看看出错信息!
hostname 改为 localhost 试试!

解决方案 »

  1.   

    可以把127.0.0.1改成localhost,或者在MySQL中给127.0.0.1添加权限
      

  2.   

    把or die("bad 3");去掉,看看能不能找到@mysql_connect,找不到是配置文件还没有配置。如果找的到,估计就是端口的问题了。
      

  3.   

    “可以把127.0.0.1改成localhost,或者在MySQL中给127.0.0.1添加权限,
    把端口去掉或者改一下,一般默认的是3306,有的是3307!”楼上所说的都检查一下
      

  4.   

    phpinfo中能看到mysql信息吗?如果没有,就是mysql扩展没有加载成功
      

  5.   

    首先,因为机器安装别的程序,3306端口被占用,安装MYSQL时端口设置为3309的,我用MYSQL ADMINISTRATOR 可以正常连接,
    我以前没做过php的,这个只是为架设一个论坛,
    或者在MySQL中给127.0.0.1添加权限如何做?修改后:
    $db=mysql_connect('localhost,'root','123456') ;
    运行结果:
    Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in F:\dkp\test.php on line 3ps:
    phpinfo()显示的关于mysql信息MySQL Support enabled 
    Active Persistent Links  0  
    Active Links  0  
    Client API version  3.23.49  Directive Local Value Master Value 
    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 
      

  6.   

    再次修改后
    db=mysql_connect('l92.168.0.1:3309'root','123456') ;
    运行结果
    Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in F:\dkp\test.php on line 3
      

  7.   

    创建一个超级用户试试
    在命令行输入
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    其中username 你的用户名
    password 你设置的密码
      

  8.   

    mysql客户端版本过低,升级到php5或使用mysqli扩展简单一点的方法是将mysql5/bin目录下的libMysql.dll复制到php的安装目录下dlls目录下
      

  9.   

    很明显是mysql升级了改了密码函数,而php连接mysql的库还没升级导致
      

  10.   

    谢谢 ice_berg16(寻梦的稻草人) 
    问题明白了,但是我是运行.exe文件安装的,在php安装目录下没有dlls这个目录?
    哪里寻找需要覆盖的文件?
      

  11.   

    同意
    iasky(C#_ASP_PHP) 
    的说法
      

  12.   

    同意
    iasky(C#_ASP_PHP) 
    的说法
      

  13.   

    UPDATE mysql.user SET Password = OLD_PASSWORD('password') WHERE Host = 'host' AND User = 'username';
      

  14.   

    下新的php5
    新的mysql
    在网上找php.ini文件的设置规则,copy 到windows目录
    copy  php5atis.dll(记不清了,自己到目录下找下)到windows\system32目录
    在iis里面添加新的扩展名,指向php5atis.dll
    就差不多可以了
      

  15.   

    安装新的PHP也试过,但环境无法运行起来,很奇怪,总说找不到页面,只有安装.exe文件好用,
    UPDATE mysql.user SET Password = OLD_PASSWORD('password') WHERE Host = 'host' AND User = 'username';这个语法的具体参数是什么意思?
    谢谢
      

  16.   

    $db=mysql_connect('localhost,'root','123456') ;
    $db=mysql_connect('localhost','root','123456') ;
      

  17.   

    ice_berg16(寻梦的稻草人) ( )
    求救!!
    怎样"使用旧版本的密码加密函数来对密码进行加密。"
      

  18.   

    我是在unix环境下出现相同的问题.
     ashchen(輝輝) ( ) 信誉:120    Blog  2006-10-26 16:40:30  得分: 0  
     
     
       
    很明显是mysql升级了改了密码函数,而php连接mysql的库还没升级导致--------------
    请问我该如何不升级密码涵数?  
     
      

  19.   

    mysqli_connect('127.0.0.1','root','123456','','3309')
      

  20.   

    一天遇到两人提这种问题,下面是复制过来的答案:
    因为php3的密码在数据库里面是md5保存的,php5的密码改成sha1方式了,而你的程序用的libmysql.dll是老版本的,所以无法登录,解决的方法是:
    1:
    update mysql.user set password=old_password('123456') where host='%' and user='user';
    flush privileges;
    2:
    set password for user@'%' = old_password('123456');
    3:
    mysql 4.1:在my.ini的[mysqld]段加上 old_password=1;
    mysql5: 在my.ini的[mysqld]段加上 set-variable=old_passwords;