mysqli connect()使用IP地址时收到错误信息

时间:2013-12-21 16:28:03

标签: php mysql mysqli localhost

我直接将其从php.net中删除

$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

echo $mysqli->host_info . "\n";

我的输出是这样的:

通过UNIX套接字的本地主机

我的问题是......当我尝试使用第二种方法时,为什么会收到错误消息。

  

无法连接到MySQL:(1045)拒绝用户' * '@ 127.0.0.1'(使用密码:是)

2 个答案:

答案 0 :(得分:1)

确保在conig文件中注释掉跳过网络。还要查看您的用户表,看看是否允许“用户”从127.0.0.1连接

答案 1 :(得分:0)

转到终端并键入:(以root用户身份登录)

mysql -i -u root

让我们首先在MySQL shell中创建一个新用户(如果你没有(*)用户在127.0.0.1主机上):

CREATE USER '*'@'127.0.0.1' IDENTIFIED BY 'password';

然后你要输入以下内容:(给(*)用户访问数据库的权限)

GRANT ALL PRIVILEGES ON * . * TO '*'@'127.0.0.1';

完成为新用户设置的权限后,请务必重新加载所有权限:

FLUSH PRIVILEGES;

您的更改现在将生效。
如何授予不同的用户权限 以下是用户可以享受的其他常见权限的简短列表。

所有特权 - 正如我们之前看到的,这将允许MySQL用户访问指定的数据库(或者如果在整个系统中没有选择数据库),那么

  • CREATE-允许他们创建新的表或数据库
  • DROP-允许他们删除表或数据库
  • DELETE-允许他们删除表格中的行
  • INSERT-允许他们将行插入表格
  • SELECT-允许他们使用Select命令进行通读 数据库
  • 更新 - 允许他们更新表格行
  • GRANT OPTION-允许他们授予或删除其他用户的权限

    参考
  

https://www.digitalocean.com/community/articles/how-to-create-a-new-user-and-grant-permissions-in-mysql