目录
前言
Laravel [1045] 解决方法 Access denied for user ‘homestead’@‘localhost’,最近准备做一个laravel作为后端的博客管理系统,做到了注册的页面,奈何连接不上数据库,查看数据库配置,没有任何错误,数据库也开启了服务,也可以正常运行,但是laravel就是连接不上数据库,其它方式都试过了,都可以连接上数据库。大概这就是后端的悲哀吧,与数据做交互,但是却连不上数据库,整个项目进度就卡到这了。本宝宝心里苦啊。
无法连接数据库
我很确定我的用户名,密码,端口号,没有任何错误但是就是连接不上。
解决步骤
1、查看是否启动mysql服务
如果在本机安装了,MySQL数据库的话我们首先需要判断MySQL服务是否启动了。
- 第一步
右击此电脑 -> 找到管理 -> 点击管理 - 第二步
点击 服务和应用程序
双击服务进入服务管理页面
- 第三步
接下来我们需要找到MySQL服务,我们下拉找到MySQL服务,
点击需要的MySQL服务
在这里我们可以对MySQL进行,停止,暂停,重启该服务,那么我们这个服务是已经启动起来了。
2、查看phpStudy数据库
我们打开phpStudy看到这里有个MySQL服务,看你需要用到哪个数据库。用到phpStudy的话,我们需要修改端口。
点击MySQL服务的配置,便可以修改数据库端口。
因为本机已经安装了一个数据库且其端口也是3306 所以我们把这个端口改为3308 可以自己随便定义,只要端口没被占用即可。
然后启动MySQL服务。
3、查看phpStudy数据库用户名密码是否正确
我们如果使用的是phpStudy集成环境提供的MySQL我们需要查看其密码是否与我们的配置文件是否相同。
点击数据库,然后点击操作我们便可以修改数据库的密码。
默认用户名密码是 root root 。
3、查看本机用户名密码是否正确
接下来我们打开MySQL的命令行登录窗口,我们的用户名是root,密码是MySQL安装时的密码,我们来测试是否可以成功登录MySQL。
输入MySQL密码。
成功登录,说明我们的MySQL服务没有问题。
4、查看数据库配置文件
- 查看.env配置文件
.env文件在我们的项目根目录下我们需要修改的地方也就下面这么多
DB_CONNECTION=mysql // 是什么数据库?MySQL还是Oracle
DB_HOST=127.0.0.1 // 地址 这里的ip地址是什么他就会去到哪里寻找数据库
DB_PORT=3306 // 数据库端口 默认为3306 如果不是的话修改为一致即可
DB_DATABASE=blog // 数据库名称
DB_USERNAME=root // 用户名
DB_PASSWORD=****** // 用户名密码
我们查看完这些配置之后还是不能连接上数据库的话我们还要看一个文件。
2. 查看database.php配置文件
该文件位于项目根目录 -> config ->database.php
接下来我们需要查看该文件中的 mysql 数组对其相关配置进行校验。
'mysql' => [
'driver' => 'mysql', //什么数据库
'host' => env('DB_HOST', '127.0.0.1'), // .env 的地址常量 默认值为127.0.0.1
'port' => env('DB_PORT', '3306'),// .env 的端口常量 默认值为3306
'database' => env('DB_DATABASE', 'forge'),// .env 的数据库名称常量 默认值为forge
'username' => env('DB_USERNAME', 'forge'),// .env 的用户名常量 默认值为forge
'password' => env('DB_PASSWORD', ''),// .env 的密码常量 默认值为空
'unix_socket' => env('DB_SOCKET', ''),// 这个不太清楚,不用管它
'charset' => 'utf8mb4', // 数据库字符集编码
'collation' => 'utf8mb4_unicode_ci', // 数据库字符集排序方式
'prefix' => '', // 数据库前缀,有些数据库会设置前缀
'prefix_indexes' => true,// 这个不太清楚,不用管它
'strict' => true,// 这个不太清楚,不用管它
'engine' => null,// 这个不太清楚,不用管它
],
这是默认的配置,但是我们有时候,手贱不小心删除掉一个的话就会造成,连接数据库失败,比如说少了一个端口字段,用户名字段什么的,就会导致数据库连接失败,那么如果以上信息都确定没有任何问题的话,那么就差最后一步,我们便可以成功连接数据库了。
5、重启服务
有时候我们之前写的密码什么的,然后再进行修改的话,它修改了但还没完全修改,这么说能明白吧!嘿,虚晃一枪,就如同浏览器一样,他会将一些信息缓存下来,来换取更快的速度,我们这个应该也是类似的情况,就如同浏览器,有时候编译的样式不生效,我们需要清楚浏览记录及数据,我们也需要清楚它的缓存数据,然后重启,我们便可以连接上数据库了。
在项目的更目录下执行下面三条命令便可以连接上数据库。
php artisan cache:clear
php artisan config:clear
php artisan serve
执行完成之后便可以,连接上数据库了。
是不是连接上了呢?换了一个错误。说该字段不存在。
结语
作为一个程序猿,写代码可能不需要多久,但是调试代码,修改代码,就真的要命了,这个原因卡了我三天,数据库删除过,phpStudy卸载过,都不能解决问题。真的吐了,程序猿就是不断的在调试代码的路上,或者在调试代码的中,只要调试代码不会出现调整完一个BUG出现一堆BUG就可以烧香拜佛了,哈哈哈。(PS:解决问题后的喜悦感就是舒服)
今天你的BUG修改完了吗?