Php 我收到Laravel Mysql连接错误
当我想要php artisan迁移时,会出现此错误。错误消息如下所示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
'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 tableusers
add uniqueusers\u email\u unique
(电子邮件
)更新您的/app/Providers/AppServiceProvider.php
以包含:使用illumb\Support\Facades\Schema;
/***引导任何应用程序服务。**@return void*/公共函数boot(){Schema::defaultStringLength(191);}
您能扩展您的答案以包含此命令的功能吗?