其实像你这样不加口令的连接根本就不要用参数,直接
$conn = mysql_connect();
就可以了这个%代表什么?
是任意主机如果host字段值分别是:localhost、10.10.10.136、%
由于同是root用户且都没有口令,mysql找到root用户并发现host不对时就返回报错了
你把host的次序改为:10.10.10.136、localhost、%
就会发现localhost不能连接了你只能保留一个root用户,并只允许host为localhost。最好有口令,没有也可以,因为只是自己用。任何来自外部的攻击都需要把连接代码写在你的机器上执行,这样话可以说是几乎没有可能性。包括从同一局域网

解决方案 »

  1.   

    如果只是自己用,没有密码,就直接用mysql_connect()行了.省掉所有参数.
      

  2.   

    其实是有密码的,上述代码是为了简单,所以没写。
    TO  xuzuning(唠叨) :
    我按您说的把host的次序改了,结果还是localhost可以连接,而用IP就不能连接。我想把web服务器和数据库服务器分离,不用IP不行呀,怎么办?
      

  3.   

    修改/etc/hosts文件 
    [root] vi /etc/hosts 
     127.0.0.1 localhost localhost 为 本机ip  localhost localhost 
      

  4.   

    TO hope1983(亢龙有悔浪子回头) :
    您说的/etc/hosts文件在哪儿呀?对不起,我是初学。另:我的环境是windows2000 + IIS + php4.3.11 + mysql 4.1
      

  5.   

    可能版本不同.
    MYSQL用户默认从本机登陆.
    你要用grant 语句来令你的用户通过IP地址连接的...
    >进入mysql,创建一个新用户xuys:
    >格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
    如:
    grant usage
    ON test.*
    TO testuser@IP地址;
      

  6.   

    err……windows啊?
    看花眼了