0712-2888027 189-8648-0214
微信公众号

孝感风信网络科技有限公司微信公众号

当前位置:主页 > 技术支持 > PHP > 解决Laravel项目MySQL 5.6数据库Migration创建报错的方法

解决Laravel项目MySQL 5.6数据库Migration创建报错的方法

时间:2024-04-23来源:风信官网 点击: 1519次
解决Laravel项目MySQL 5.6数据库Migration创建报错的方法

开发环镜:PHP > 7.0
Laravel 5.5版本
数据库:MySQL V5.6

对于较新版本的Laravel框架,建议使用MySQL 5.7数据库以上版本,避免类为字符集等问题,而造成Migration创建数据库报错等问题。

但对于之前就使用MySQL 5.6的数据库,我们应该如何解决Migration创建数据库报错的问题呢?下面我们提供两个解决的方案:

方法1、直接修改字符集

修改config\database.php文件

新版本Laravel MySQL采用utf8mb4字符集,需要修改代码:

'mysql' => [
            'driver' => 'mysql',
            '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' => '',
            'strict' => true,
            'engine' => null,
        ],

修改为:

'mysql' => [
            'driver' => 'mysql',
            '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' => 'utf8',
            'collation' => 'utf8_unicode_ci',

            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

再使用php artisan migrate即可在MySQL 5.6中创建数据库成功。

方法2、修改AppServiceProvider.php文件

1、修改App\Providers\AppServiceProvider.php文件

public function boot()
    {
        //      
    }

修改为:

use Schema; //引入Schema

public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

Schema::defaultStringLength(191)指定字符集长度

然后再使用php artisan migrate命令创建数据库成功!
热门关键词: Laravel MySQL 5.6 数据库 Migration
栏目列表
推荐内容
热点内容
展开