首页 > 解决方案 > SQLSTATE[HY000] [1049] 未知数据库 PDO

问题描述

收到一个错误,指出我的用户不知道该数据库,即使它存在并且拼写正确。我已授予他们对数据库的所有权限,我可以通过服务器中的 mysql 命令行访问它,并且可以通过 mysql 工作台访问它,但是当我尝试在我的 api 中使用 pdo 访问它时。我也无法与用户创建新模式。

我从 mysql.user 检查了用户、主机,它显示用户有 % 和 localhost。我在 mysqld.cnf 中注释掉了 bind-address 并像这样创建了我的用户。

CREATE USER 'user'@'localhost' IDENTIFIED BY 'myPassword';
CREATE USER 'user'@'%' IDENTIFIED BY 'myPassword';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

我的 pdo 连接

<?php
class Database{
    private $host = "127.0.0.1";
    private $db_name = "casinoCheckList";
    private $username = "user";
    private $password = "myPassword";
    public $conn;

    public function getConnection(){

        $this->conn = null;
        try{
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->exec("set names utf8");
        }catch(PDOException $exception){
            echo "Connection error: " . $exception->getMessage();
        }

        return $this->conn;
    }
}
?>

标签: phpmysqlpdodigital-ocean

解决方案


推荐阅读