无法连接:拒绝用户'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'
