相关疑难解决方法(0)

启用远程MySQL连接:ERROR 1045(28000):拒绝用户访问

在Windows XP上运行的MySQL 5.1.31.

本地 MySQL服务器(192.168.233.142)我可以以root身份连接如下:

>mysql --host=192.168.233.142 --user=root --password=redacted
Run Code Online (Sandbox Code Playgroud)

远程计算机(192.168.233.163),我可以看到mysql端口是打开的:

# telnet 192.168.233.142 3306
Trying 192.168.233.142...
Connected to 192.168.233.142 (192.168.233.142).
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从远程计算机连接到mysql时,我会收到:

# mysql --host=192.168.233.142 --user=root --password=redacted
ERROR 1045 (28000): Access denied for user 'root'@'192.168.233.163' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

我在mysql.user中只有2个条目:

Host         User     Password
--------------------------------------
localhost    root     *blahblahblah
%            root     [same as above]
Run Code Online (Sandbox Code Playgroud)

我还需要做些什么来启用远程访问?

编辑

正如下面的Paulo所建议的,我尝试用特定于IP的条目替换%的mysql.user条目,因此我的用户表现在看起来像这样:

Host             User     Password
------------------------------------------
localhost        root     *blahblahblah
192.168.233.163  root     [same as above]
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了机器,但问题仍然存在.

mysql

131
推荐指数
6
解决办法
28万
查看次数

授予数据库上的所有权限,这并不授予我特定IP的任何特权

我正在尝试将所有特权授予特定的IP,但是当我尝试获取特权IP的列表时,它始终仅显示本地主机,我按照此问题中的说明进行操作,但未做任何更改,我在做什么错?

MariaDB [(none)]> GRANT ALL ON database.* TO 'root'@'192.168.3.1' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show slave status;
ERROR 1227 (42000): …
Run Code Online (Sandbox Code Playgroud)

mysql grant

1
推荐指数
1
解决办法
1729
查看次数

用户 'username'@'%' 的 PDO 访问被拒绝

我需要使用 php 页面连接到远程 mysql 服务器;
连接本身很有魅力,但是当我尝试创建数据库时,因为它尚不存在,我收到此错误:

带有消息“SQLSTATE[42000]”的异常“PDOException”:语法错误或访问冲突:1044 用户“[myusername]”@“%”对 [myurl]/php/db_manager.php 中的数据库“[mydbname]”的访问被拒绝:76

如您所见,我对“%”的访问被拒绝。
现在:什么是“%”?

此外:

主文件

private function createDB() {
if($this->cm->update("CREATE DATABASE IF NOT EXISTS " . $this->dbName . " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;", array())) { // Error here
  $this->cm->update("USE " . $this->dbName . ";", array());
  return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)

$this->cm 是一个正确初始化的 PDO 包装器的实例

PDO 包装文件

public function update($query, $values) 
try{
        $sql = $this->db->prepare($query);
        $sql->execute($values);
        return true;
    } catch(PDOException $e) {
        $this->l->error($e); // <- Error here
        return false; …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

0
推荐指数
1
解决办法
5723
查看次数

标签 统计

mysql ×3

grant ×1

pdo ×1

php ×1