Laravel 执行 php artisan migrate
命令时,报错:
1 | Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, |
这是因为Laravel 5.4以后的版本默认使用utf8mb4字符集,该字符集支持在数据库中存储“表情符号”。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。
解决方法一,使用 utf8
替代 utf8mb4
这可能不是理想的,但如果你不关心“utf8mb4”,你可以去你的 config/database.php
文件替换 charset
和 collation
为 utf8
1 | 'charset' => 'utf8mb4', |
to1
2'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
然后执行命令 composer dump-autoload
, 再执行 php artisan migrate
就不会报错了。