laravel对mysql的低版本的兼容

laravel框架,对于mysql的版本是有要求的,要求5.7及以上版本,除了修改已安装mysql的版本之外,还有另外两种方式可以实现低版本的数据库。

方法一:修改mysql的配置文件

找到对应的数据库配置文件config/database.php的mysql配置
把相关配置修改成值:

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',

如果线上线下使用不同版本的mysql的话,
可以把这些参数,写在.env文件里面。在config/database.php里面修改参数从.env文件里面获取,如下:
config/database.php修改为:

'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' => env('DB_CHARSET', 'utf8mb4'),
    'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

.env环境配置文件修改为:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=hxsen
DB_USERNAME=hxsen
DB_PASSWORD=KwAJKcm5YY
DB_CHARSET=utf8
DB_COLLATION=utf8_unicode_ci

这样就可以使用线上线下不同的配置了

方法二:修改代码

找到app目录下Providers/AppServiceProvider.php文件,在此文件的Boot方法内写一行代码也能实现完成数据迁移工作

Schema::defaultStringLength(191);

这行代码作用是设置当前数据库默认字符长度

你可能感兴趣的:(laravel对mysql的低版本的兼容)