ZKX
首页
分类
PHP
MySQL
登录/注册
phpstudy 升级 MySQL版本到MySQL5.7
2020-04-01
156
0
#### 起因:我用laravel6做迁移的时候,总是报这个错误 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes #### 原因: Laravel 5.4对默认数据库字符集进行了更改,现在utf8mb4它包含了对存储表情符号的支持。这只会影响新的应用程序,只要您运行MySQL v5.7.7及更高版本,就不需要做任何事情。 #### 解决方案:把mysql版本升级到5.8,我用的PHPstudy集成环境 phpstudy默认的mysql版本为5.5的,以下的目录路径为我的,实际按照你们自己的来。 还有第二种方法,就是在`项目\app\Providers\AppServiceProvider.php`文件中,修改`boot`方法 ```php use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); } ``` 注:异常中明确指明最大长度是767字节,utf8mb4编码每字符使用4字节,所以 767 / 4 = 191.75,所以将string的默认长度设置为191字符即可 ##### 第一步:备份 把当前数据库下的数据导出来,最好导成SQL文件,并且把D:/PHPstudy/PHPTutorial/MySQL文件夹拷贝一份,万一升级失败还可以还原嘛 ##### 第二步:到官网下载MySQL5.8的包 传送门:[MySQL官网](https://dev.mysql.com/downloads/ "MySQL官网")    ##### 第三步:新老版本替换 1. 清空D:/PHPstudy/PHPTutorial/MySQL/文件夹,并把刚下载的MySQL5.7的包解压、解压下的文件拷贝到D:/PHPstudy/PHPTutorial/MySQL/文件夹下 2. 刚下载的包里面是没有my.ini配置文件的,所以你可以新建一个,也可以把之前的my.ini复制到D:/PHPstudy/PHPTutorial/MySQL/文件夹下 新建配置文件,格式大概是这样 [mysqld] port=3306 skip-grant-tables basedir="D:/PHPStudy/PHPTutorial/MySQL/" datadir="D:/PHPStudy/PHPTutorial/MySQL/data/" sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 注意`basedir`和`datadir`的路径要准确,不能错 这里有一个小坑,如果你用的是以前的配置文件 如果你配置文件中有`table_cache`和`innodb_additional_mem_pool_size`有这两个配置的话, 需要把`table_cache`改为`table_open_cache`, `innodb_additional_mem_pool_size`前面加`#`号注释掉 ##### 第四步:安装MySQL服务 用cmd命令行,在`D:/PHPStudy/PHPTutorial/MySQL/bin/`执行命令`mysqld install;`  初始化MySQL命令:`mysqld --install;` 启动MySQL服务命令:`net start mysql;`  注意:若无法启动,或者启动后库内没有mysql表,则运行: `mysqld --initialize-insecure --initialize-insecure --user=mysql;`  ##### 第五步:修改MySQL密码 输入`mysql -uroot -p`执行,会让你输入密码,现在没有设置密码,回车就行 然后选择数据库`use mysql;`,执行`update user set authentication_string=password('输入你的密码') where user='root';` 然后在执行`flush privileges;`  ##### 第六步:PHPstudy控制MySQL启动 如果用PHPstudy无法启动MySQL  检查服务是否启动,打开`任务管理器=>服务`,查找MySQL服务,如果只有一个MySQL服务就手动的启动,如果有两个MySQL服务,如`MySQL`和`MySQLa`,就需要删除一个服务,在`D:/PHPStudy/PHPTutorial/MySQL/bin/`执行`sc delete mysql`就好了。
标签:
phpstudy
mysql
评论
回复
测试人物
:
取消回复
评论正在提交中...请稍后
评论提交成功...
提交失败
评论
接口请求错误
加载更多
网站信息
联系博主
日志总数:82 篇
网站运行天数:448 天
微信:未设置
QQ:未设置
热门文章
layui 的 checkbox 联动,监听事件不准确
2019-11-05
293
4
PHP 控制 QPS (Query Per Second) 的写法
2019-11-05
237
0
phpstudy 升级 MySQL版本到MySQL5.7
2020-04-01
157
0
laravel php artisan migrate 指定迁移文件
2019-12-12
121
0
laravel 整合 workerman 做聊天室
2019-12-12
93
0
微擎数据库表结构,供参考!
2019-11-05
91
0
在使用laravel+layui时,模板语法冲突
2019-11-05
89
0
PHP 用正则分章节
2019-12-05
85
0
git 常用命令
2019-12-11
79
0
Navicat 远程连接 mysql报can't connect to mysql server on 10060
2019-11-05
79
0
在阿里云服务器上部署git
2019-11-05
78
0
curl 请求
2019-11-05
78
0