今天在导入sql文件的时候遇到了sql执行错误。最后找到原因是因为MysqL版本过低,导致出错
原因:在执行sql的时候出现了两次CURRENT_TIMESTAMP ,最后得知在5.7版本之前都是不支持同时出现两个CURRENT_TIMESTAMP
首先到官方区下载所需要的版本5.7
官方网址:https://dev.MysqL.com/downloads/file/?id=467269
二、把下载的 MysqL 压缩文件解压至 PHPStudy 下的 MysqL目录,复制 my-default.ini ,重命名为 my.ini。
打开 my.ini,找到 #basedir 处编辑:
basedir="C:/PHPStudy/PHPTutorial/MysqL/"
datadir="C:/PHPStudy/PHPTutorial/MysqL/data/"
以上两个是我对应的文件目录
三、在 cmd 下进入 MysqL 的 bin 目录(我的是 D:/PHPStudy/MysqL/bin),执行:
四、安装服务
MysqLd -install
五、安装成功后重启服务net start MysqL,这个时候就可以查看自己的版本了
六、在此时登入 MysqL 报错:
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
七、打开 my.ini,找到 [MysqLd],在下面添加:
skip-grant-tables声明一下skip-grant-tables 这行代码我见有人发布的是 要注释掉,但是我这边在使用laravel项目的时候注释掉就报错。大家可以试试这里两种情况
此时在使用 root 账号,密码处按回车即可登录。
八、修改密码
MysqL>update MysqL.user set authentication_string=password('new_password') where user='root' and Host ='localhost'
MysqL> ALTER USER USER() IDENTIFIED BY 'news_password';
刷新完在刷新一次权限:
FLUSH PRIVILEGES;
重新登录。
此时查看 MysqL 版本:
最后在给大家说一个问题。5.7版本是装上了 但是PHPstudy启动不了MysqL,但是可以通过服务来进行启动。 只需要在执行一个
sc delete MysqL命令就可以了 因为你会看到服务里面有个MysqL跟MysqLa两个服务 ,两者发生了冲突所以就起不来了
以上就是我今天所遇到的问题 希望大家多多交流