升级 phpStudy 中 MySQL 版本至 5.7.17

今天在往本地导数据表的时候总是报错:php

[Err] 1294 - Invalid ON UPDATE clause for '字段名' column

报错的数据表字段:mysql

`字段名` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP

同事说同一个 sql 文件他能够导成功。猜多是数据库版本的问题,同事的是 5.6,我查了下本地的数据库版本是 5.5.53。网上查了一下,果真是版本的问题,5.5 和 5.6 在 TIMESTEMP 的行为上有所不一样,5.6.5 以前的版本不支持多个CURRENT_TIMESTAMP 默认值。sql

因为本地用的集成环境是 phpStudy 2016,没有找到升级 MySQL 版本的选项,因此本身升级一下。数据库

从官网上下载高版本的 MySQL :https://dev.mysql.com/downloads/file/?id=467269,选的版本是 5.7.17(后面才发现 5.7 版本的安装、系统表字段等又和以前的版本有所不一样)。安全

 

 步骤:spa

0x00

备份原来 phpStudy 中 MySQL 安装目录命令行

 

0x01

把下载的 MySQL 压缩文件解压至 phpStudy 下的 MySQL目录,复制 my-default.ini ,重命名为 my.ini。code

打开 my.ini,找到 #basedir 处编辑:blog

basedir=D:/phpStudy/MySQL
datadir=D:/phpStudy/MySQL/data

 

0x02

把 MySQL 安装路径添加至系统环境变量图片

 

过程:计算机—>系统属性—>高级系统配置—>环境变量

这里写图片描述

选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:个人是:D:\Program Files\MySQL\MySQL Server 5.6\bin ) 修改后的PATH为:

PATH=…….;D:\Program Files\MySQL\MySQL Server 5.6\bin (需注意:1.必须在原有PATH后加英文输入下的分号;2.是追加,不是覆盖。)

这里写图片描述

0x03

在 cmd 下进入 MySQL 的 bin 目录(个人是 D:/phpStudy/MySQL/bin),执行:

mysqld --initialize

初始化数据库

 

0x04

安装服务:

mysqld -install

启动服务:

net start MySQL

 

0x05

此时登入 MySQL 报错:

C:\Users\dell>mysql -uroot -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

尝试修改 root 用户密码:

关闭服务net stop MySQL

用安全模式打开,mysqld --skip-grant-tables

这个时候,光标会一直闪。注意,不要动,打开另外一个命令行窗口。

 

登陆 mysql -u root -p

密码为空,直接回车;

就能够进去了

而后

use mysql;

(可能先前的版本密码的抬头是password,5.7.11是 authentication_string,能够select * from user,查看一下)

(老版本)update user set password=password("123456") where user="root";

(5.7.11)update user set authentication_string=password("123456") where user="root";


最后

刷新权限:

FLUSH PRIVILEGES;

 

从新登陆。

 

升级后随phpstudy启动

命令行执行:mysqld --remove mysql

而后 在phpstudy中服务管理器总能安装mysql服务

 

 

 

此时查看 mySQL 版本:

复制代码
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.17    |
+-----------+
复制代码
相关文章
相关标签/搜索