phpstudy 2018 自带mysql 为5.5,但是碰到一个项目mysql要求>=5.7,升级过程不是很顺利,记录一下,估计以后还得升级。
升级过程
-
下载MySQL,地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads;
-
备份所用数据库,以防丢失;
-
停止mysql
-
删除 注册表 :Ctrl+R 进入cmd窗口,输入regedit后,在打开的注册表列表中,找到 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL;删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL;删除 -
删除原来的PHPstudy下的MYSQL,或者将其重命名为mysql5.5;将下载的MySQL解压,放到安装目录:如:D:\phpStudy2018\PHPTutorial\MySQL;注意:mysql5.7以后的新版本,默认是没有my.ini文件的和data目录的,data目录可以不创建,只需创建my.ini即可(放在mysql目录下),里面写入一下内容:
# power by php中文网 2017 www.php.cn 官网下载最新版 [client] port=3306 [mysql] default-character-set=utf8 [mysqld] port=3306 basedir="D:/phpStudy2018/PHPTutorial/MySQL/" datadir="D:/phpStudy2018/PHPTutorial/MySQL/data/" character-set-server=utf8 default-storage-engine=INNODB #支持 INNODB 引擎模式。修改为 default-storage-engine=INNODB 即可。 #如果 INNODB 模式如果不能启动,删除data目录下ib开头的日志文件重新启动。 max_connections=512 #新加 innodb_file_per_table = 1 skip-grant-tables = 1 #跳过权限验证
注意:将--basedir,datadir改成自己的安装目录;
-
win+r 打开 cmd,cd到mysql\bin;D:\phpStudy2018\PHPTutorial\MySQL\bin;
-
执行命令:
mysqld --initialize-insecure(无密码,会在mysql目录下自动生成data目录) mysqld -install #注册mysql服务,若提示service already exist!则运行以下2条命令,没有则跳过 sc query mysql sc delete mysql #启动mysql服务 net start mysql
正常这样就升级完成。
问题记录
-
缺少dll文件:
安装mysql过程中可能会碰到提示缺少msvcp120.dll和msvcr120.dll;这时下载DirectX修复工具进行修复,一般即可修复成功。下载地址:DirectX:(http://forspeed.onlinedown.net/down/DirectXxiufugongju3.7.zip); -
程序无法执行
执行mysql install 或者mysql initialize 时提示程序无法执行,卸载mysql服务,重新执行安装命令(修改my.ini,不要直接复制原来mysql5.5的,我原来直接复制5.5的,一直提示无法执行,mysql服务无法启动,后来修改了my.ini文件,即上面的my.ini)。 -
phpstudy启动后mysql无法启动
在mysql升级完成后,启动phpstudy出现mysql服务无法启动问题,但是在cmd中执行 net start mysql ,可以启动mysql服务,这时phpstudy中mysql也正常启动,但是重启PHPstudy又无法启动mysql服务, 打开PHPstudy——>其他选项菜单——>服务管理器——>打开服务管理,找到mysql,这个就是刚刚升级mysql创建的服务;在phpstudy中创建mysql服务,会发现出现一个MySQLa服务,这个是PHPstudy创建的mysql服务,所以phpstudy开启的是MySQLa服务,而MySQL创建的是mysql服务,这两个服务冲突,需删除mysql服务,执行命令sc delete mysql
然后重启phpstudy,mysql服务正常启动。