phpstudy将mysql升级到mysql8,mysql8配置,mysql8加密方式更改,mysql8遇到laravel报错解决

本文详细介绍了如何使用PHPStudy将MySQL升级至MySQL8,并提供了my.ini配置示例。同时,针对升级后可能遇到的Laravel兼容性问题,给出了具体的解决方案,包括调整SQL_MODE设置和数据库配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,phpstudy升级mysql到mysql8(新的phpstudy8已经是mysql8了)

1,下载mysql8
2,将原来的mysql文件夹重命名,并执行 mysqld  --remove
3,将新的mysql8放进去并命名MySQL
4,编辑my.ini,如下供借鉴
#  power by php中文网 2017  www.php.cn  官网下载最新版
[client]
port=3306
[mysql]
default-character-set=utf8

[mysqld]
port=3306
basedir="D:/apps/phpstudy2018/PHPTutorial/MySQL/"
datadir="D:/apps/phpstudy2018/PHPTutorial/MySQL/data/"
character-set-server=utf8
default-storage-engine=INNODB

default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

character-set-server = utf8mb4

performance_schema_max_table_instances = 600
table_definition_cache = 400
table_open_cache = 256
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4

5,cmd到mysql/bin下main执行mysqld --initialize --console初始化mysql,成功会看到密码打印出来
6,安装服务 mysqld install
7,启动服务net start mysql
8,应该就可以用phpstudy启动或者关闭了

 

二,mysql8密码加密方式更改,上面的配置里面的mysql_native_password就是沿用了之前的加密方式

三,laravel遇到mysql8可能会报错:

SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER' (SQL: 。。。。。。)

这个时候可以将config/database.php里面的mysql配置修改一下,把strict改成false:

'mysql' => [
    ......
    'strict' => false,
    'engine' => null
],

或者在engine后面加上modes参数

'mysql' => [
    ......

    'strict' => true,
    'engine' => null,
    'modes'  => [
        'ONLY_FULL_GROUP_BY',
        'STRICT_TRANS_TABLES',
        'NO_ZERO_IN_DATE',
        'NO_ZERO_DATE',
        'ERROR_FOR_DIVISION_BY_ZERO',
        'NO_ENGINE_SUBSTITUTION',
    ],
],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值