Lamp 环境中的 PHP Artisan 迁移错误

我在MAC上,我的XAMPP是XAMPP-VM,并使用lampp创建一个文件夹。

在我的XAMPP中,我的服务器是:localhost:8080

我有一个错误,它说

Illuminate\Database\QueryException] SQLSTATE[HY000] [2002] 没有这样的文件或目录(SQL:从 information_schema.tables 中选择 *,其中 table_schema = laravel 且 table_name = 迁移)

我尝试了很多解决方案,但没有一个对我有用。

我不确定“DB_SOCKET”是什么,以及该文件的路径在 XAMPP 中的位置。

.env

    APP_NAME=Laravel

    APP_ENV=local

    APP_KEY=base64:zS3EUWDenTnhNu0CpN1TQdVSM0ArEgtFI1zpIwes1qQ=

    APP_DEBUG=true

    APP_URL=http://localhost


    LOG_CHANNEL=stack


    DB_CONNECTION=mysql

    DB_HOST=localhost

    DB_PORT=3306

    DB_DATABASE=demo

    DB_USERNAME=root

    DB_PASSWORD=

    DB_SOCKET=/Applications/lampp/tmp/mysql/mysql.sock


    BROADCAST_DRIVER=log

    CACHE_DRIVER=file

    QUEUE_CONNECTION=sync

    SESSION_DRIVER=file

    SESSION_LIFETIME=120

    REDIS_HOST=127.0.0.1

    REDIS_PASSWORD=null

    REDIS_PORT=6379


    MAIL_MAILER=smtp

    MAIL_HOST=smtp.mailtrap.io

    MAIL_PORT=2525

    MAIL_USERNAME=null

    MAIL_PASSWORD=null

    MAIL_ENCRYPTION=null

    MAIL_FROM_ADDRESS=null

    MAIL_FROM_NAME="${APP_NAME}"


    AWS_ACCESS_KEY_ID=

    AWS_SECRET_ACCESS_KEY=

    AWS_DEFAULT_REGION=us-east-1

    AWS_BUCKET=


    PUSHER_APP_ID=

    PUSHER_APP_KEY=

    PUSHER_APP_SECRET=

    PUSHER_APP_CLUSTER=mt1


    MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"

    MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

数据库.php


'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', 'forge'),

            '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([

            ]) : [],

        ],


慕仙森
浏览 208回答 2
2回答

MMTTMM

更新 - XAMPP VM 解决方案我之前描述的糟糕解决方案在不同的 XAMPP 安装中对我有用。由于您使用的是XAMPP-VM,它实际上创建了一个 Debian VM,具有不同的 MySQL 默认设置(可能是 VM 开箱即用的 MariaDB)。因此,来自本地计算机的访问将被禁止,默认情况下 PhpMyAdmin 也应受到限制,并且必须进行配置才能从虚拟机外部进行访问。当 XAMPP VM 启动时,它会为 VM 分配一个 IP(如下图所示):这是应该在 .env 数据库配置中使用的 IP(我的情况DB_HOST=192.168.64.2)。但为了能够连接到 VM 中的 MariaDB,需要从 XAMPP 的 VM 窗口打开终端。进入后,输入mysqlMariaDB,然后输入以下内容:创建由“admin”标识的用户“admin”@“%”;授予 上的所有权限。TO 'admin'@'%' 并授予选项;同花顺特权;这将允许您使用具有虚拟机外部所有权限的管理员用户从 Laravel 的应用程序访问 MySQL。.env 文件应如下所示:DB_CONNECTION=mysqlDB_HOST=192.168.64.2DB_PORT=3306DB_DATABASE=demo // this schema would have to be created firstDB_USERNAME=adminDB_PASSWORD=admin现在移民应该对你有好处。

牛魔王的故事

如果您使用的是Mac在终端写入作曲家全局需要“laravel/installer”(输入)纳米.bash_profile(输入)按 i 按钮,这样你就可以写了导出 PATH="$PATH:$HOME/.composer/vender/bin"按 alt+command 并输入按 x 按钮退出然后打开你的XAMPP单击常规点击打开终端单击终端密码(输入)cd 空间..(输入)光盘选择/cd lampp(即使您使用的是 xampp)cd 文档cd ur laravel 文件夹名称php 工匠迁移
打开App,查看更多内容
随时随地看视频慕课网APP