Php 我收到Laravel Mysql连接错误

Php 我收到Laravel Mysql连接错误,php,mysql,laravel,Php,Mysql,Laravel,当我想要php artisan迁移时,会出现此错误。错误消息如下所示 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'd

当我想要php artisan迁移时,会出现此错误。错误消息如下所示

 'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:sBKduFaKhOJdg7/A1U4IzAUnj3yLLcjngjmMvEoWl94=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
SQLSTATE[42S01]:基表或视图已存在:1050表 “用户”已存在(SQL:创建表
users
id
bigint 无符号非空自动递增主键,
name
varchar(255)非空 空,
email
varchar(255)非空,
email\u验证时间戳
空,
password
varchar(255)不为空,
memory_-token
varchar(100) 空,
时间戳空时创建,
时间戳空时更新) 默认字符集utf8mb4比较“utf8mb4\U unicode\U ci”)

在 C:\composer\blog\vendor\laravel\framework\src\illumb\Database\Connection.php:671 667▕ // 如果在尝试运行查询时发生异常,我们将格式化错误 668▕ // 消息以包含SQL绑定,这将导致此异常 669▕ // 对开发人员的帮助要大得多,而不仅仅是数据库的错误。 670▕ 捕获(例外$e){➜ 671▕ 抛出新的QueryException( 672▕ $查询,$this->prepareBindings($bindings),$e 673▕ ); 674▕ } 675▕

1
C:\composer\blog\vendor\laravel\framework\src\illumb\Database\Connection.php:464 PDOException::(“SQLSTATE[42S01]:基表或视图已存在:1050表“用户”已存在”)

2
C:\composer\blog\vendor\laravel\framework\src\illumb\Database\Connection.php:464 PDO语句::execute()

和数据库设置如下所示。 Database.php文件中的设置如下

 'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:sBKduFaKhOJdg7/A1U4IzAUnj3yLLcjngjmMvEoWl94=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
.env文件中的设置如下

 'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:sBKduFaKhOJdg7/A1U4IzAUnj3yLLcjngjmMvEoWl94=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

注意:我将mysql用于wampserver。

删除已迁移的文件,然后执行迁移命令

以下是我为解决相同问题而采取的步骤,如:

  • 在控制台中,我编写了=>php artisan tinker

  • 然后再次在控制台=>Schema::drop('users')

  • 最后=>php artisan迁移


  • 也许下面的命令会有帮助

    php artisan migrate:fresh
    
    迁移命令及其使用

      migrate:fresh        Drop all tables and re-run all migrations
      migrate:install      Create the migration repository
      migrate:refresh      Reset and re-run all migrations
      migrate:reset        Rollback all database migrations
      migrate:rollback     Rollback the last database migration
      migrate:status       Show the status of each migratioin
    

    欢迎来到SO..
    1050表“用户”已经存在“
    你能看到错误吗,它说
    用户
    已经退出,因此无法再次创建,或者你可以尝试
    php artisan migrate:fresh
    我已经尝试过了,没有任何变化。不断给出错误完全删除用户tablephp artisan db:wipe(它将从db中删除所有表),然后php artisan Migrate当它执行您所说的操作时,会给出此错误。SQLSTATE[42000]:语法错误或访问冲突:1071指定的键太长;最大键长为1000字节(SQL:alter table
    users
    add unique
    users\u email\u unique
    电子邮件
    )更新您的
    /app/Providers/AppServiceProvider.php
    以包含:
    使用illumb\Support\Facades\Schema;
    /***引导任何应用程序服务。**@return void*/
    公共函数boot(){Schema::defaultStringLength(191);}
    您能扩展您的答案以包含此命令的功能吗?