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