php7链接mysql8报错SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)_哦卖糕的博客-CSDN博客

来源: php7链接mysql8报错SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)_哦卖糕的博客-CSDN博客

使用环境:
windows 7 下
wampserver 3.2.0-64bit
mySQL版本8.0.18 端口号:3308
php版本7.3.12
测试的源码:

<?php
$servername = “localhost”;
$username = “root”;
$password = “root”;

try {
$conn = new PDO(“mySQL:host=$servername;”, $username, $password);
echo “连接成功”;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

报错内容:
SQLSTATE[HY000] [1045] Access denied for user ‘root’@‘localhost’ (using password: YES)
网上找到很多关于修改 mi.ini ,httpd.conf ,httpd-vhost.conf,等文件的文章,最终测试的都不行。
以下是举例:
1.确认database.php文件配置正确。
2.检查.env文件

1.APP_ENV=local
2.APP_KEY=
3.APP_Debug=true
4.APP_LOG_LEVEL=Debug
5.APP_URL=http://localhost

6.DB_CONNECTION=mysql
7.DB_HOST=127.0.0.1
8.DB_PORT=3308
9.DB_DATABASE=homestead
10.DB_USERNAME=homestead
11.DB_PASSWORD=secret

12.BROADCAST_DRIVER=log
13.CACHE_DRIVER=file
14.SESSION_DRIVER=file
15.QUEUE_DRIVER=sync

16.REDIS_HOST=127.0.0.1
17.REDIS_PASSWORD=null
18.REDIS_PORT=6379

19.MAIL_DRIVER=smtp
20.MAIL_HOST=mailtrap.io
21.MAIL_PORT=2525
22.MAIL_USERNAME=null
23.MAIL_PASSWORD=null
24.MAIL_ENCRYPTION=null

25.PUSHER_APP_ID=
26.PUSHER_KEY=
27.PUSHER_SECRET=
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
取对应的数据库部分

“`php
1.DB_CONNECTION=mysql
2.DB_HOST=127.0.0.1
3.DB_PORT=3308
4.DB_DATABASE=homestead
5.DB_USERNAME=homestead
6.DB_PASSWORD=secret
1
2
3
4
5
6
7
8
3.修改.env文件。

1.DB_CONNECTION=mysql
2.DB_HOST=[你的数据库地址]
3.DB_PORT=[端口(3308)]
4.DB_DATABASE=[数据库]
5.DB_USERNAME=[用户名]
6.DB_PASSWORD=[密码]
1
2
3
4
5
6
4、检查httpd.conf。
5、httpd-vhost.conf

以上方法都不能解决问题,后来换了一串代码,如下:

<?php
$serve = ‘mysql:host=localhost:3308;dbname=hzpccc;charset=utf8’;
$username = ‘root’;
$password = ‘root’;

try{ // PDO连接数据库若错误则会抛出一个PDOException异常
$PDO = new PDO($serve,$username,$password);
$result = $PDO->query(‘select * from hydt’);
$data = $result->fetchAll(PDO::FETCH_ASSOC); // PDO::FETCH_ASSOC表示将对应结果集中的每一行作为一个由列名索引的数组返回
print_r($data);
} catch (PDOException $error){
echo ‘connect failed:’.$error->getMessage();
}

?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
带上端口号就没问题了,怎么回事?我是新手,感觉端口不对才找到这个代码,大神可以指点下什么原因。
————————————————
版权声明:本文为CSDN博主「哦卖糕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/omaigao/article/details/104476516

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏