Php Can';t使用新的MySQL用户连接到MySQL

Php Can';t使用新的MySQL用户连接到MySQL,php,mysql,symfony,Php,Mysql,Symfony,我在一个个人网站上工作。我只是把它放在生产服务器上。当我在开发环境中时,我使用root连接到MySQL,但现在我只是为这个网站创建了一个特定于用户的。所以我用MySQL写了这个命令行: GRANT USAGE ON portefolio.* TO 'userPortefolio'@'localhost' IDENTIFIED BY PASSWORD 'myPasswordCrypted' 查询是可以的,但在我的网站上,当我尝试访问带有查询的页面时,Symfony会告诉我该错误: SQLSTAT

我在一个个人网站上工作。我只是把它放在生产服务器上。当我在开发环境中时,我使用root连接到MySQL,但现在我只是为这个网站创建了一个特定于用户的。所以我用MySQL写了这个命令行:

GRANT USAGE ON portefolio.* TO 'userPortefolio'@'localhost' IDENTIFIED BY PASSWORD 'myPasswordCrypted'
查询是可以的,但在我的网站上,当我尝试访问带有查询的页面时,Symfony会告诉我该错误:

SQLSTATE[42000] [1044] Access denied for user 'userPortefolio'@'localhost' to database 'portefolio'
我试图重新启动服务器,以确保一切正常,但什么也没有。 我用MySQL函数加密了密码

password('my password not encrypt')
我用Symfony写的密码是非加密格式的。可以吗

GRANT USAGE ON portefolio.* TO 'userPortefolio'@'localhost' IDENTIFIED BY PASSWORD 'myPasswordCrypted'
在此语句中不应加密您的密码。MySQL自动加密它


在此语句中不应加密您的密码。MySQL会自动对其进行加密。

假设在连接etc时没有出现任何异常,您应该执行以下操作

flush privileges;

运行授权查询后。

假设在连接etc时没有出现任何问题,您应该执行以下操作

flush privileges;
运行授权查询后。

引用:使用权限说明符表示“无权限”

因此,一切似乎都在按设计工作。

引用:使用权限说明符代表“无权限”


因此,一切似乎都按设计进行。

我不知道当代版本,但在当时,只有在绕过GRANT/REVOKE并直接修改基础表的情况下,刷新权限才是必要的。数据库权限更改将在客户端下次执行USE db_name语句时生效。似乎他在做了“授权查询”之后可能没有“使用数据库”,我曾经刷新过权限,没有任何更改,当我在命令行中与新用户连接时,使用:mysql-u userPortefolio-p没关系,但是如果我“使用portefolio”mysql给我同样的错误:访问被拒绝你能为“userPortefolio”@“localhost”做一个显示授权吗;然后发布?@Sniffleh:如果您使用帐户管理语句(如grant、REVOKE或SET PASSWORD)间接修改了授权表,服务器会注意到这些更改,并立即将授权表重新加载到内存中。您引用的句子前面有每个现有客户机连接的权限,如下所示:我不知道当前版本,但当时只有在绕过GRANT/REVOKE并直接修改基础表的情况下,才需要刷新权限。数据库权限更改将在客户端下次执行USE db_name语句时生效。似乎他在做了“授权查询”之后可能没有“使用数据库”,我曾经刷新过权限,没有任何更改,当我在命令行中与新用户连接时,使用:mysql-u userPortefolio-p没关系,但是如果我“使用portefolio”mysql给我同样的错误:访问被拒绝你能为“userPortefolio”@“localhost”做一个显示授权吗;然后发布?@Sniffleh:如果您使用帐户管理语句(如grant、REVOKE或SET PASSWORD)间接修改了授权表,服务器会注意到这些更改,并立即将授权表重新加载到内存中。您引用的句子前面有每个现有客户端连接的权限,受影响如下:如果我不加密密码,mysql告诉我:错误1372(HY000):密码哈希应该是41位十六进制数字如果我不加密密码,mysql告诉我:错误1372(HY000):密码哈希应为41位十六进制数字