SQLSTATE [HY000] [1045]拒绝访问用户' homestead' localhost' (使用密码:是)(SQL:select * from`table`)

时间:2017-03-05 14:16:58

标签: sql laravel

我正在使用Laravel,我已经配置了.env文件。当我进行迁移并迁移时,它会影响数据库,但是当我尝试从同一个数据库中读取时,我得到了这个异常。谢谢

  

SQLSTATE [HY000] [1045]拒绝访问用户'宅基地@' localhost'   (使用密码:是)(SQL:select * from table

2 个答案:

答案 0 :(得分:1)

您必须设置正确的权限:

$ mysql -u root -p
$ <your-password>
$ use mysql
$ GRANT ALL ON *.* to 'homestead'@'localhost' IDENTIFIED BY '<your-password>';
$ FLUSH PRIVILEGES;

答案 1 :(得分:0)

如果是wampserver或xampp的新安装或新升级,则需要将端口包括在连接中,

因为默认的MySQL端口是3306,

但是mariadb默认是默认(3306)端口上的端口,因此,当您尝试连接MySQL时,其重定向到mariadb。

您需要更正端口,它可能是3306或3307或3308并使用 ip而不是localhost。您的最终代码:

$host = '127.0.0.1';
$db   = 'test';
$user = 'root';
$pass = '';
$port = '3308';
$charset = 'utf8mb4';

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $mysqli = mysqli_connect($host, $user, $pass, $port, $db);
    mysqli_set_charset($mysqli, $charset);
} catch (\mysqli_sql_exception $e) {
     throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
}

Solved question here

对于pdo和docker:

See these answers