今天在導入sql文件的時候遇到了sql執行錯誤。最後找到原因是因為mysql版本過低,導致出錯 原因:在執行sql的時候出現了兩次CURRENT_TIMESTAMP ,最後得知在5.7版本之前都是不支持同時出現兩個CURRENT_TIMESTAMP 所以導致執行sql出錯。下麵是將mysql升級到5 ...
今天在導入sql文件的時候遇到了sql執行錯誤。最後找到原因是因為mysql版本過低,導致出錯
原因:在執行sql的時候出現了兩次CURRENT_TIMESTAMP ,最後得知在5.7版本之前都是不支持同時出現兩個CURRENT_TIMESTAMP
所以導致執行sql出錯。下麵是將mysql升級到5.7:
首先到官方區下載所需要的版本5.7
官方網址:https://dev.mysql.com/downloads/file/?id=467269
一、備份原來 phpStudy 中 MySQL 安裝目錄
二、把下載的 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 --initialize 初始化資料庫
四、安裝服務
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兩個服務 ,兩者發生了衝突所以就起不來了
以上就是我今天所遇到的問題 希望大家多多交流