前言
今天在工作发现一个错误。在往本地导数据表的时候老是报错:
?
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 处编辑:
?
12 | 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 报错:
?
123 | 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 账号。密码处按回车即可登录。
修改密码:
?
12 | 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 版本:
?
123456 | mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.17 | +-----------+ |
总结
以上就是这篇文章的全部内容了。希望本文的内容对大家的学习或者工作能带来一定的帮助。如果有疑问大家可以留言交流。谢谢大家对渲大师的支持。
参考:
phpStudy升级MySQL教程
mysql5.7 安装方法 (跟旧的不一样了)
windows环境中mysql忘记root密码的解决办法
修改MySQL 5.7.9版本的root密码方法以及一些新变化整理
原文链接:http://www.cnblogs.com/dee0912/p/6375729.html
本文地址:https://gpu.xuandashi.com/41022.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!