前言
rush:plain;">
[Err] 1294 - Invalid ON UPDATE clause for '字段名' column
报错的数据表字段:
rush:plain;">
`字段名` 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 :
选的版本是 5.7.17(后面才发现 5.7 版本的安装、系统表字段等又和之前的版本有所不同)。
步骤:
二、把下载的 MysqL 压缩文件解压至 PHPStudy 下的 MysqL目录,复制 my-default.ini ,重命名为 my.ini。
打开 my.ini,找到 #basedir 处编辑:
四、在 cmd 下进入 MysqL 的 bin 目录(我的是 D:/PHPStudy/MysqL/bin),执行:
rush:plain;">
MysqLd --initialize
初始化数据库
五、安装服务:
rush:plain;">
MysqLd -install
启动服务:
rush:plain;">
net start MysqL
六、此时登入 MysqL 报错:
MysqL -uroot -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
rush:plain;">
skip-grant-tables
此时使用 root 账号,密码处按回车即可登录。
修改密码:
update MysqL.user set authentication_string=password('new_password') where user='root' and Host ='localhost'
MysqL> ALTER USER USER() IDENTIFIED BY 'news_password';
刷新权限:
rush:plain;">
FLUSH PRIVILEGES;
注释掉 my.ini 中刚才添加的
rush:plain;">
skip-grant-tables
重新登录。
此时查看 MysqL 版本:
select version();
+-----------+
| version() |
+-----------+
| 5.7.17 |
+-----------+
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持。
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。