无法连接:拒绝用户'root'@'localhost'

        <?php
            $name= $_POST["dbname"];
            $pass= $_POST["dbpass"];
            $rname= $_POST["rootname"];
            $rpass=$_POST["rootpass"];

            if ($rname='leave blank for default root name' or $name='')
                {
                    $rname="root";
                }
            if ($rpass='leave blank if no password assigned')
                {
                    $rpass='';
                }

            $con = mysql_connect("localhost", $rname, $rpass);

            if (!$con)
                {

                  die('Could not connect: ' . mysql_error());
                }

                    if (mysql_query("CREATE DATABASE {$name}",$con))
                        {
                          echo "Database created";
                         }
                        else
                          {
                              echo "Error creating database: " . mysql_error();
                          }
                    (mysql_query("DATABASEPASSWORD {$pass}",$con));


                mysql_close($con);      
        ?>

这是我用来创建数据库的php脚本,我通过rootname = root和rootpass = toor

但我得到一个错误

警告:在第17行的/var/www/webdefender/script/dbcreate.php中,用户'root'@'localhost'(使用密码:NO)拒绝访问mysql_connect():无法连接:拒绝用户'root' @'localhost'(使用密码:NO)

但是当我使用

$con = mysql_connect("localhost", 'root','toor' );

它工作正常

请帮忙


您在前两次检查中分配值,而不是检查它们是否相等。

$a = 1; // assigning
$a == 1; // this is a check if 1 is $a is equal to 1

所以你基本上把你的$ rpass值重置为''(空字符串):

if ($rpass='leave blank if no password assigned')
{
   $rpass='';
}

改变你的支票使用==,它会起作用。

请注意,使用脚本的root访问权限是一个巨大的安全隐患。


不要在下面的代码附近使用或使用if ($rname='')

if ($rname='')
{
    $rname="root";
}

如果像这样使用U,这是一般情况

if($a=b)

总是返回true,$ a的值为b
正确的语法是

if($a==b)

所以当且仅当$ a value = b时它返回true

链接地址: http://www.djcxy.com/p/69287.html

上一篇: Could not connect: Access denied for user 'root'@'localhost'

下一篇: when storing image in mysql database i have error