SQLSTATE[HY000] [1049] Unknown database 'laravel' 连接数据库失败

我尝试部署个人网站到一个新服务器上,但是遇到了现在的问题

问题截图

配置相关

laravel 6.2版本 + lnmp环境

我明明在env 声明的库名是 blog 不知道为毛提示的是’laravel’的库找不到, 尝试过php artisan route:clear php artisan cache:clear php artisan config:clear

求求救救孩子吧:tired_face: :tired_face:

我是哈哈怪,每天笑哈哈. go/php开发, 业余喜欢写技术文章,欢迎关注我的个人网站 公众号:哈哈怪玩编程
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

感谢大家帮助!
问题已解决,是因为nginx配置有问题,

  1. 我尝试把route/web.php清空,以及nginx指向目录修改,好像是有”缓存”一样,页面没有任何变动,
  2. 重新还原并配置nginx.conf后 问题解决!
    稍后我找找之前一版nginx.conf内容 供大家参考避免踩坑~

—————————下面为nginx.conf文件部分代码 ————

    server {
        listen 80;

        #server_name被注释的时候有问题 有问题时候是这样#
        #server_name example.com;

        #server_name打开加上后好了 问题解决后是这样↓
        server_name my_ip_address;

        root /var/www/wyblog/public;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";

        index index.html index.htm index.php;

        charset utf-8;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }

        error_page 404 /index.php;

        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
  • 因为我目前没有个人域名 所以用的ip直接访问, 注释server_name看到能访问到对应目录后认为nginx配置没问题了:flushed: :flushed:
  • 刚才把server_name注释打开并且加上了我服务器的ip 重启nginx后发现问题解决了
    Laravel
2年前 评论
Summer 2年前
哈哈怪 (作者) (楼主) 2年前
哈哈怪 (作者) (楼主) 2年前
php_yt 2年前
讨论数量: 11
Luson

我也遇到过;在配置文件中把 batabase写死就行了

database => 'blog'

改成这样试试

2年前 评论
chowjiawei

由于其他配置 导致的 覆盖laravel 数据库配置问题 请检查其他环境 可以在路由中写下闭包,打印env的数据库是不是laravel 目前可以确定是叫laravel,一楼的做法治标不治本,如果不紧急不太推荐

2年前 评论

按照你的写法,第一优先级应该是环境变量,查一下你系统的环境变量吧,也许是设为laravel了

2年前 评论

逐步打印输出配置文件的信息,检查是否出错。另外还一种可能性比较小,就是本地访问的地址访问的是其他项目文件,可尝试加上端口进行访问

2年前 评论
Summer

laravel 数据库来自于哪?之前设置过,现在做了数据库名称做了变更?还是系统里有其他应用使用了数据库名为 laravel

如果是 .env 信息未加载上,报错信息也应该提示 forge 数据库未找到,而非 laravel

2年前 评论

感谢大家帮助!
问题已解决,是因为nginx配置有问题,

  1. 我尝试把route/web.php清空,以及nginx指向目录修改,好像是有”缓存”一样,页面没有任何变动,
  2. 重新还原并配置nginx.conf后 问题解决!
    稍后我找找之前一版nginx.conf内容 供大家参考避免踩坑~

—————————下面为nginx.conf文件部分代码 ————

    server {
        listen 80;

        #server_name被注释的时候有问题 有问题时候是这样#
        #server_name example.com;

        #server_name打开加上后好了 问题解决后是这样↓
        server_name my_ip_address;

        root /var/www/wyblog/public;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";

        index index.html index.htm index.php;

        charset utf-8;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }

        error_page 404 /index.php;

        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
  • 因为我目前没有个人域名 所以用的ip直接访问, 注释server_name看到能访问到对应目录后认为nginx配置没问题了:flushed: :flushed:
  • 刚才把server_name注释打开并且加上了我服务器的ip 重启nginx后发现问题解决了
    Laravel
2年前 评论
Summer 2年前
哈哈怪 (作者) (楼主) 2年前
哈哈怪 (作者) (楼主) 2年前
php_yt 2年前

dd(config('database')); 打印的结果即是真实数据库配置,寻找 laravel 数据库的信息,既然报错,一定是存在的。
手动指定 mysql 连接 DB::connection('mysql')->table('test')->first(); 打印下是否正确读取。
如果确定配置没问题,手动指定连接也没问题,则是默认的连接不对

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!