phpstudy 升级mysql到mysql5.7

前言php

今天在工做发现一个错误,在往本地导数据表的时候总是报错:mysql

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

报错的数据表字段:sql

?
1
`字段名` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP

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

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

从官网上下载高版本的 MySQL :.net

官方网址:https://dev.mysql.com/downloads/file/?id=467269命令行

百度云盘地址:https://pan.baidu.com/s/1mi4UHtAcode

选的版本是 5.7.17(后面才发现 5.7 版本的安装、系统表字段等又和以前的版本有所不一样)。htm

步骤:ip

1、备份原来 phpStudy 中 MySQL 安装目录

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

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

?
1
2
basedir=D:/phpStudy/MySQL
datadir=D:/phpStudy/MySQL/data

3、把 MySQL 安装路径添加至系统环境变量

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

?
1
mysqld --initialize

初始化数据库

5、安装服务:

?
1
mysqld -install

启动服务:

?
1
net start MySQL

6、此时登入 MySQL 报错:

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

尝试修改 root 用户密码:

打开 my.ini,找到 [mysqld],在下面添加:

?
1
skip-grant-tables

此时使用 root 帐号,密码处按回车便可登陆。

修改密码:

?
1
2
mysql>update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost'
mysql> ALTER USER USER() IDENTIFIED BY 'news_password';

刷新权限:

?
1
FLUSH PRIVILEGES;

注释掉 my.ini 中刚才添加的

?
1
skip-grant-tables

从新登陆。

此时查看 mySQL 版本:

?
1
2
3
4
5
6
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.17  |
+-----------+

 

7、问题产生: 
安装好phpstudy后,升级了MySQL后,经过phpstudy启动,Apache能够启动,Mysql没法启动。

解决方法: 以前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务。 在cmd命令行下输入:sc delete mysql 便可删除。

相关文章
相关标签/搜索