微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 在现有项目上航行 - 未知数据库 SQLSTATE[HY000] [1049]

如何解决Laravel 在现有项目上航行 - 未知数据库 SQLSTATE[HY000] [1049]

我正在尝试使用 Laravel Sail 在本地合并现有项目。我不断收到 1049 未知数据库错误。我尝试了以下方法

sail PHP artisan config:clear
sail PHP artisan config:cache

我也尝试将 MysqL 作为主机替换为使用 127.1.1.0 就像 .env.example 文件一样,但没有运气。

我也尝试过重建容器,但似乎无法解决问题。

enter image description here

这是我的 .env 文件(当我尝试使用非 root 用户时,我收到 1045 错误提示访问被拒绝,想知道这些是否相关):

DB_CONNECTION=MysqL
DB_HOST=MysqL
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

这是我的 docker-compose.yml 文件

MysqL:
        image: 'MysqL:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MysqL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MysqL_DATABASE: '${DB_DATABASE}'
            MysqL_USER: '${DB_USERNAME}'
            MysqL_PASSWORD: '${DB_PASSWORD}'
            MysqL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailMysqL:/var/lib/MysqL'
        networks:
            - sail

数据库配置:

'MysqL' => [
            'driver' => 'MysqL','url' => env('DATABASE_URL'),'host' => env('DB_HOST','127.0.0.1'),'port' => env('DB_PORT','3306'),'database' => env('DB_DATABASE','forge'),'username' => env('DB_USERNAME','password' => env('DB_PASSWORD',''),'unix_socket' => env('DB_SOCKET','charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix' => '','prefix_indexes' => true,'strict' => false,'engine' => null,'options' => extension_loaded('pdo_MysqL') ? array_filter([
                PDO::MysqL_ATTR_SSL_CA => env('MysqL_ATTR_SSL_CA'),]) : [],],

更新:

我在同一个 WSL 安装的相邻目录中安装了全新安装的 laravel,并验证了 docker-compose.yml、.env 和 database.PHP 配置文件都相同。新安装启动良好,我可以连接到数据库,现有项目仍然无法正常工作。真是一头雾水..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。