Php 向mysql授予远程访问权限

Php 向mysql授予远程访问权限,php,mysql,database,linux,nginx,Php,Mysql,Database,Linux,Nginx,您好,我在Centos VPS上,安装了nginx+mysql+php fpm。我正在尝试允许从我的另一个VP远程访问此计算机上的数据库 我尝试了以下步骤 修改了/etc/my.cnf文件,然后在[mysqld]块中添加了行绑定地址=* 使用命令/etc/init.d/mysqld restart 登录mysql 键入use social命令,并尝试运行命令将**上的所有权限授予根@1.2.3.4,由“pass”标识其中1.2.3.4是我要从中远程访问社交数据库的VP的IP 错误是get i

您好,我在Centos VPS上,安装了nginx+mysql+php fpm。我正在尝试允许从我的另一个VP远程访问此计算机上的数据库

我尝试了以下步骤

  • 修改了
    /etc/my.cnf
    文件,然后在[mysqld]块中添加了行
    绑定地址=*
  • 使用命令
    /etc/init.d/mysqld restart
  • 登录mysql
  • 键入
    use social
    命令,并尝试运行命令
    将**上的所有权限授予根@1.2.3.4,由“pass”标识其中1.2.3.4是我要从中远程访问社交数据库的VP的IP
错误是get is

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;
}
?>

我在这里更改了密码和数据库名称。 这些文件当前托管在主VP和我试图从中访问的VP上,可以在和处查看


有人能告诉我为什么我会遇到这个错误,当我可以登录和创建用户,甚至使用相同的用户名,根和相同的密码在数据库上操作,即使在这个错误之后

运行此命令后

GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
同时运行此命令

FLUSH PRIVILEGES;

有关运行此命令后的更多信息

GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
同时运行此命令

FLUSH PRIVILEGES;

有关运行此命令后的更多信息

GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
同时运行此命令

FLUSH PRIVILEGES;

有关运行此命令后的更多信息

GRANT ALL PRIVILEGES ON dbname TO root@'1.2.3.4' IDENTIFIED BY 'pass';
同时运行此命令

FLUSH PRIVILEGES;

更多信息

我已经这样做了,但没有用,当我尝试远程登录并尝试运行select命令时,它表示用户没有运行select的权限。但是我已经运行了“授予所有特权”命令!!可以阅读文档并授予特定用户表和列的权限:)我已经设法修复了它,出现问题的是命令
将dbname上的所有权限授予root@“1.2.3.4”,由“pass”标识
这是只向表
dbname.dbname
授予特权,正确的方法是
GRANT-ALL-privileges-ON-dbname.*向root@“1.2.3.4”授予由“pass”标识的权限对不起,亲爱的,我无法解决这个问题…我已经这样做了,但没有用,当我尝试远程登录并尝试运行select命令时,它表示用户没有运行select的权限。但是我已经运行了“授予所有特权”命令!!可以阅读文档并授予特定用户表和列的权限:)我已经设法修复了它,出现问题的是命令
将dbname上的所有权限授予root@“1.2.3.4”,由“pass”标识
这是只向表
dbname.dbname
授予特权,正确的方法是
GRANT-ALL-privileges-ON-dbname.*向root@“1.2.3.4”授予由“pass”标识的权限对不起,亲爱的,我无法解决这个问题…我已经这样做了,但没有用,当我尝试远程登录并尝试运行select命令时,它表示用户没有运行select的权限。但是我已经运行了“授予所有特权”命令!!可以阅读文档并授予特定用户表和列的权限:)我已经设法修复了它,出现问题的是命令
将dbname上的所有权限授予root@“1.2.3.4”,由“pass”标识
这是只向表
dbname.dbname
授予特权,正确的方法是
GRANT-ALL-privileges-ON-dbname.*向root@“1.2.3.4”授予由“pass”标识的权限对不起,亲爱的,我无法解决这个问题…我已经这样做了,但没有用,当我尝试远程登录并尝试运行select命令时,它表示用户没有运行select的权限。但是我已经运行了“授予所有特权”命令!!可以阅读文档并授予特定用户表和列的权限:)我已经设法修复了它,出现问题的是命令
将dbname上的所有权限授予root@“1.2.3.4”,由“pass”标识
这是只向表
dbname.dbname
授予特权,正确的方法是
GRANT-ALL-privileges-ON-dbname.*向root@“1.2.3.4”授予由“pass”标识的权限抱歉亲爱的,我无法解决此问题。。。