0%

phpStudy 升级 MySQL 版本

关于 phpStudy 升级 MySQL 版本这件事

又是折腾了好几个小时。

phpStudy

这是我用了很久的一个集成环境,最早的时候听了建议下载来用,也一直没换。伴着我度过了自己写项目,实践课大作业等等。总体来说还挺好用的,不过我使用的是 2018 版本,现在已经出了很多新版本。

它的优点有面板简洁,操作方便,集成完整,包括了 php、服务器和数据库,并且可以在不同版本之间切换。除了 数据库

升级需求的由来

一切源自于我学习 Django ,写项目试图折腾一下无视图开发。

首先搜索了 RESTFUL 风格的 Django 开发,搜索到了一个库,但是我粗略地看了看,觉得太麻烦了。于是放弃,继续寻找原生 Django API 开发。在我的理念里,MVC 式开发就是在处理好数据后把数据塞进视图模板进行渲染,将页面返回给浏览器。而无视图开发,则是抛弃了视图模板,直接返回一些字符串文本而已。

翻了一下确实找到了,并且示例切换了 MySQL 数据库,而这,就是我那几个小时折腾的由来。

我切换了自己项目的数据库引擎,配置好账户、密码等等。然后我敲下数据库迁移命令。

也就报了几十行错误吧,滚轮滚滚还是能翻完的。

错误定位在此处:

image-20201213160542879

可以看出此处出现了语法错误,我很迷惑,于是我翻找了 Django 官网的数据库连接教程。Django 提出可以定义文件来写入参数,我试了试,报了另外一个错。于是又回头去查这个错误的原因。

溯源很简单,网络给出了一个回答,曰:数据库版本过低,需要大于 5.x 以上。我大吃一惊,赶紧检查了 phpStudy 自带的数据库版本。就差一点点,就过线了。( 此处假装有图 )

没办法,我只能去找找怎么给 phpStudy 更换数据库版本。我隐约嗅到一丝要荒废时间的味道。因为许久之前,我忽略了 phpStudy 自带了一个数据库,而转头又去下了一个用。后来导致 phpStudy 无法面板启动 MySQL,那时候真是弄得焦头烂额。

焦头烂额的下午

首先导出数据库内的数据,临时存储在桌面。

备份旧的 MySQL 的 my.ini 文件。

备份 phpStudy 的 MySQL 文件夹。

下载新版本数据库,解压到对应位置。

初始化数据库,安装数据库。

启动~

命令行亲切地提示我无法启动,于是我依着网上给 my.ini 中塞入了 skip-grant-tables 这一行。

不错,确实能启动了,然后我去修改密码。

交互命令行也亲切地抛出了错误。

提示没有 mysql.user 这个表。

于是我再次寻找成功更换的例子,并且重新再换了一份 MySQL 。

此链接 给了我较大帮助,但是依然存在一些问题。

首先是文中关于 my.ini 这个文件名的笔误。其次,我的 5.7.31 版本中 my.ini 依然需要放在 MySQL 路径下,放在 bin 当中并不起作用。关于卸载 MySQL 服务的命令也有一些问题。应该是:

mysqld --remove xxx # xxx 为服务名

我猜测是我的数据库服务名不是默认的,执行 mysqld -remove 会报错服务不存在。

依照文中给出的基础步骤。

  • 备份
  • 下载新版本
  • 卸载旧服务
  • 初始化服务器
  • 安装新服务
  • 修改密码

可以实现数据库的正常安装。

但是可能会导致 phpStudy 无法正常启动数据库。

原因很简单,数据库执行安装命令默认安装的服务名为 MySQL

但 phpStudy 启动的服务名为 MySQLa ,此处正确的做法是在执行安装命令时:

mysqld --install MySQLa

那么,就会得到我们需要的服务。

关于启动数据库报错 1055 的问题。

解决方法

最后

我没有进一步查阅关于 MySQLa 这个服务名是自定义的还是默认给出,是否可以自定义。