您好我在安装了nginx + mysql + php-fpm的Centos VPS上。我试图允许从我的另一个VPS远程访问这台机器上的数据库。
我尝试了以下步骤。
/etc/my.cnf
文件,然后在[mysqld]块中添加了行bind-address = *
/etc/init.d/mysqld restart
use social
命令并尝试运行命令GRANT ALL PRIVILEGES ON *.* TO root@'1.2.3.4' IDENTIFIED BY 'pass';
其中1.2.3.4是我想从远程访问社交数据库的VPS的IP。错误是获取
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在进一步挖掘时,我发现如果我使用命令
GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
其中 dbname 是我想要操作的数据库的名称,然后它可以工作,在刷新权限后,我可以看到新的mysql.user表中有新的用户授权。但即便如此,如果我尝试远程连接它们,我会得到一个空白页面。毫无例外。 这是我用来连接到这个数据库的php文件的副本。
<?php
$conn = @mysql_connect('1.2.3.4','root','pass');
if (!$conn) {
die('Could not connect: ' . mysql_error());
}
try{
mysql_select_db('dbname', $conn);
}
catch (Exception $e)
{
echo $error = "An error has occured ".$e->getMessage()." (Code: ".$e->getCode()." )";
echo $error;
}
try{
$sql = "SELECT * FROM bla_user";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
echo $count;
}
catch (Exception $e)
{
echo $error = "An error has occured ".$e->getMessage()." (Code: ".$e->getCode()." )";
echo $error;
}
?>
我在这里更改了密码和数据库名称。 这些文件目前都托管在主VPS和我尝试访问的文件上,可以在http://www.jukpac.com/test.php和http://www.techbreeze.in/test.php
查看当我可以登录并创建用户甚至使用相同的用户名,root和相同的密码操作甚至在此错误之后,有人能让我知道为什么我遇到此错误!
答案 0 :(得分:3)
GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
也运行此命令
FLUSH PRIVILEGES;