【问题标题】:Why won't my PHP file connect to mysql?为什么我的 PHP 文件无法连接到 mysql?
【发布时间】:2016-04-10 16:22:09
【问题描述】:

我正在使用 OS X El Capitan。 Mysql 正在运行,我可以使用 mysql 命令行工具添加表。当我尝试从我的 PHP 文件连接到数据库时,我收到 1045 错误。下面是代码:

$dbc = mysqli_connect('127.0.0.1', 'root', '*****', 'aliendatabase')
// or die('Error connecting to MySQL server. ');
or die("Debugging errno: " . mysqli_connect_errno() );

$query = "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, " .
"how_many, alien_description, what_they_did, fang_spotted, other, email) " .
"VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " .
"'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";

$result = mysqli_query($dbc, $query)
or die('Error querying database.');

mysqli_close($dbc);

我已将授权选项设置如下:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*477A2FE5488EA451D53F4BFE898AA4D4F61B68EF' WITH GRANT OPTION GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

我不知道为什么这不起作用,我尝试使用 mysql.server startmysqld 启动 mysql 进程。显然,连接参数中的星号代表我的密码。有人知道我错过了什么吗?

【问题讨论】:

  • 我应该补充一下,我知道网上有很多答案,但似乎对我的具体情况没有帮助。
  • 您是否尝试过无密码连接?像 mysql -u root 之类的?
  • 我只需输入mysql 即可进入命令行工具。但是,如果我输入 mysql -u root 我会收到拒绝访问消息。
  • root 开箱即用,拥有一切特权,它是超级用户。弄乱那个 GRANT 命令可能会造成更大的伤害
  • 我真的这么认为@RiggsFolly

标签: php mysql macos mysql-error-1045


【解决方案1】:

您正在授予localhost 的权限,然后连接到127.0.0.1

尝试在您的连接中将127.0.0.1 更改为localhost

$dbc = mysqli_connect('localhost', 'root', '*****', 'aliendatabase')

或者至少确保root@127.0.0.1 也被授予了适当的权限。

【讨论】:

  • 感谢您的回复。我确实按照您所说的授予了权限,但是当我显示授予权限时,127.0.0.1 已变为localhost。此外,当我在mysqli_connect() 函数中使用localhost 作为参数时,我得到一个不同的错误,因为它没有将localhost 映射到127.0.0.1。这是我以后要处理的单独问题。
猜你喜欢
  • 2018-03-01
  • 1970-01-01
  • 2022-09-24
  • 2018-10-08
  • 2015-11-22
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多