当前位置: 首页 > 知识库问答 >
问题:

无法连接:拒绝用户“root”@“localhost”的访问

易骁
2023-03-14
        <?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

但我得到一个错误

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

但是当我使用

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

它很好用

请帮忙

共有3个答案

宋英杰
2023-03-14

你这样用if是很普通的

if($a=b)

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

if($a==b)

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

那谦
2023-03-14

如果($rname='')

if ($rname='')
{
    $rname="root";
}
双恩
2023-03-14

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

$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’@’%’没有任何权限。.就像我以前用作连接地址一样,因此它给出了拒绝访问错误.. 是IP地址的通配符。所以mys

  • 这是我的代码: 对于dbServername,我尝试过使用localhost、localhost:8080、localhost:3306和127.0.0.1,但只有127.0.0.1和localhost:3306似乎通过了测试,并给出了可能的错误。我在localhost(没有这样的文件或目录*)和localhost:8080(MySQL已经消失)中遇到了不同的错误。 因此,考虑到IP as dbS

  • 在Ubuntu中使用MySQL我做了以下步骤: 我收到一个错误: 拒绝用户“root”@"localhost“的访问(使用密码:YES)

  • 我正在尝试从Spring启动连接MySQL db,但我收到此错误为: 我的application.properties档案看起来像 用户名“root”和密码“root”正确,因为我可以从命令行登录到root。我已经尝试了java.sql中的所有方法。SQLException:用户“root”@“ocalhost”的访问被拒绝(使用密码:YES)

  • 问题内容: 当我在PHPMyAdmin中设置root密码时,出现以下错误: 我无法打开PHPMyAdmin面板。我究竟做错了什么? 问题答案: 编辑您的phpmyadmin config.inc.php文件,如果您有密码,请在以下代码中将其插入密码前面:

  • 问题内容: $ ./mysqladmin -u root -p ‘ 编辑 ‘ 输入密码: mysqladmin:在“ localhost”处连接到服务器失败错误: “对用户“ root” @“ localhost”的访问被拒绝(使用密码:是) 我怎样才能解决这个问题? 问题答案: 打开并编辑或,具体取决于您的发行版。 添加下 重启MySQL 您现在应该可以使用以下命令登录mysql 跑 设置新密码