SQLSTATE [HY000] [1045]在lumen api

时间:2019-06-11 07:17:25

标签: mysql apache pdo lumen ubuntu-18.04

我正在Ubuntu 18.04上安装带有taskel的灯。我已经按照 https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-18-04

在更改.env文件和config / database.php文件中的数据库详细信息之后,在浏览器中访问该应用程序。

创建了一个数据库“ mydb”

创建了一个用户“ myusername” /“ mypwd”,并将所有特权授予该用户和数据库。 例如->

CREATE USER 'myusername'@'localhost' IDENTIFIED BY 'mypwd';
GRANT ALL PRIVILEGES ON * . * TO 'myusername'@'localhost';
FLUSH PRIVILEGES;

流明.env中的配置

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=myusername
DB_PASSWORD=mypwd

config / database.php

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'mydb'),
'username' => env('DB_USERNAME', 'myusername'),
'password' => env('DB_PASSWORD', 'mypwd'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]

在终端中运行“ path / project_folder /” php artisan cache:clear

日志:

  

[2017-01-23 09:34:24] local.ERROR:消息为'SQLSTATE [HY000] [1045]的用户'myusername'@'localhost'访问被拒绝的异常'PDOException'   (使用密码:是)在Illuminate \ Database \ Connectors \ Connector.php:119

注意:验证PDO是否在我的机器上正常工作 用testdb.php测试了mysql连接:

$servername = "localhost";
$dbname = "testdb";
$username = "root";
$password = "secret";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
die("mysqli Connection failed: " . $conn->connect_error);
}
echo "
mysqli Connected successfully 
";
// working correct

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
die("

mysqli_connect Connection failed: " . mysqli_connect_error());
}
echo "
mysqli_connect Connected successfully
";

// working correct
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "
MySQL PDO Connected successfully
";
}
catch(PDOException $e)
{
echo "

MySQL PDO Connection failed: " . $e->getMessage();
}
?>

输出为

  

mysqli成功连接

     

mysqli_connect成功连接

     

MySQL PDO连接失败:SQLSTATE [HY000] [1045]>用户'root'@'localhost'(使用密码:是)的访问被拒绝

我的本​​地计算机中的PDO无法正常工作。 mysql pdo的扩展处于活动状态。多次重启Lamp服务器。但是它仍然无法正常工作。可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

  

MySQL PDO连接失败:SQLSTATE [HY000] [1045]>用户'root'@'localhost'的访问被拒绝(使用密码:是)

这并不意味着PDO不起作用,而是起作用。用户“ root”的登录失败。密码可能不正确,否则可能是其他问题。 (例如主机)

您可以尝试以下吗?

  

创建用户'myusername'@'%'由'mypwd'标识;   授予*所有特权。 *至'myusername'@'localhost';   冲洗特权;

这将创建一个可以从任何主机登录的用户。