Php 向用户授予权限并不’;我不能在MySQL中工作
这是我在监狱里执行的 我执行了以下命令:Php 向用户授予权限并不’;我不能在MySQL中工作,php,mysql,Php,Mysql,这是我在监狱里执行的 我执行了以下命令: CREATE USER root IDENTIFIED BY PASSWORD ''; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 我在尝试连接时得到以下信息: 连接失败:用户“root”@“localhost”的SQLSTATE[HY000][1045]访问被拒绝(使用密码:否) 请注意,上面的连接以前是有效的。现在不行了(因为我切换到XAMPP)。您确定root用户没有
CREATE USER root IDENTIFIED BY PASSWORD '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
我在尝试连接时得到以下信息:
连接失败:用户“root”@“localhost”的SQLSTATE[HY000][1045]访问被拒绝(使用密码:否)
请注意,上面的连接以前是有效的。现在不行了(因为我切换到XAMPP)。您确定root用户没有密码吗?您是否已安装以检查此问题 如果问题不在于特权,那么可能是端口。MySQL的默认端口是3306,因此如果您的MySQL端口现在是82,您必须在连接中添加端口。请检查,似乎您应该使用另一种语法作为帐户名
- 帐户名的语法为“用户名”@“主机名”
创建由密码“”标识的用户“root”@“localhost”代码>。
在您的情况下,创建用户“root”@“
但我确实不建议对root用户使用“%”
。更改权限后是否刷新权限
您应该执行FLUSH特权
告诉服务器重新加载授权表。主机%
不适用于localhost
。您需要单独为localhost授予grand权限。我再次测试了它,结果是:host=127.0.0.1。它适用于number,但不适用于localhost。但是,当我访问localhost时,我会这样访问它:localhost:82。这可能是它不起作用的原因吗..因为我没有包括端口号..当我用ip接近它时,它起作用了吗?为什么要创建用户根用户?它应该始终存在,因此不需要创建它。我认为这与端口有关。我认为我应该连接localhost:82,而不是localhost localhost,它与127.0.0.1相似,因此,如果您的连接使用127.0.0.1就足够了。另外,如果没有帮助,请检查批准的答案。这些答案包含了我们试图通过PDO连接到DB时使用的不同DSN的有用信息
$dsn = 'mysql:dbname=one';
$user = 'root';
$password = '';
$pdo = "Not set";
try{
$pdo=new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(Exception $ex){
echo "Connect failed: " . $ex->getMessage();
}