phpStudy中升级MySQL版本到5.7.17的方法步骤

phpStudy中升级MySQL版本到5.7.17的方法步骤

http://www.jb51.net/article/120263.htm

前言

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

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

报错的数据表字段:

?
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 版本的选项,所以自己升级一下。

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

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

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

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

步骤:

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

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

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

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

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

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

?
1
mysqld --initialize

初始化数据库

五、安装服务:

?
1
mysqld -install

启动服务:

?
1
net start MySQL

六、此时登入 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  |
+-----------+

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113223.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月22日 上午9:00
下一篇 2021年10月22日 上午10:00


相关推荐

  • 进程间通信的五种方式

    进程间通信的五种方式进程间通信的意思就是在不同进程之间传递信息 它是一组编程接口 让程序员协调不同进程 使能够相互传递消息 IPC 目的 1 数据传输 一个进程需要将它的数据发送给另一个进程 发送的数据量在一个字节到几兆字节之间 2 共享数据 多个进程想要操作共享数据 一个进程对共享数据的修改 别的进程应该立刻看到 3 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程

    2026年3月17日
    2
  • opkg安装到U盘

    opkg安装到U盘2019独角兽企业重金招聘Python工程师标准>>>…

    2022年5月7日
    43
  • nsfw什么颜色_“ NSFW”是什么意思,以及如何使用它?

    nsfw什么颜色_“ NSFW”是什么意思,以及如何使用它?nsfw 什么颜色 CasimiorPT Shutterstock 卡西米 PT 快门 NSFWisanodd versatileint sfounditsway ButwhatdoesN where ditcomefrom a

    2026年3月20日
    2
  • Java内存管理-掌握虚拟机类加载机制(四)

    勿在流沙筑高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!上一篇介绍了整个JVM运行时的区域,以及简单对比了JDK7和JDK8中JVM运行时区域的一些变化,也顺便总结了哪些区域会发生异常(内存溢出)问题。前一篇的话还是非常重要,请大家务必要多多阅读学习和掌握,因为这些基础的知识点会关联后续的一系列问题内容,如果前面没有先有一定的基础知识储…

    2022年2月28日
    43
  • go语言的type func()用法

    go语言的type func()用法在 go 语言中 type 可以定义任何自定义的类型比如熟悉的 typedogstruc typemyIntint 等等所以 func 也是可以作为类型自定义的 typemyFuncfu int int 意思是自定义了一个叫 myFunc 的函数类型 这个函数的签名必须符合输入为 int 输出为 int 已知 相同底层类型的变量之间是可以相互转换的 例如从一个取值范围小的 int16 转为取值范围大的 int32 所以 自定义的 myInt 和 int 之间也是可以转换的 typemyIn

    2025年6月8日
    6
  • app软件版本号命名规则_文件版本号命名规则

    app软件版本号命名规则_文件版本号命名规则为什么需要规范APP命名?当我们在需求及业务明确后,产品及设计已经做出了对应的文档及UI图,那么进入研发阶段开始编码实现功能,当功能实现的差不多了之后,期间会需要签出不同的包作为展示或测试,不管当前的进度处于什么阶段,签出对应安装包的时候都会对其进行命名并发送给测试人员。一般往往通过命名,就可以大概知道当前签出的包处于哪个版本阶段,Alpha阶段?Beta阶段?R

    2025年10月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号