mysql5.7比之前的一個重大的區(qū)別就是在datetime的這個默認值上5.7的可以設(shè)置成current_timestamp,而之前的mysql(5.5)版本會報錯,所以工作需要,得升級mysql

首先:關(guān)閉phpstudy,任務(wù)管理器里面關(guān)閉mysql進程
1.在mysql官網(wǎng)下載壓縮包,我選取的是最新版的5.7.17連接:https://dev.mysql.com/downloads/mysql/
2.趁著下載的時間可以把之前的數(shù)據(jù)庫數(shù)據(jù)備份下,我把 phpStudy 中 MySQL 文件夾可以重命名下,備用
3.把下載的 MySQL 壓縮文件解壓至 phpStudy 下的 MySQL目錄,復(fù)制my-default.ini ,重命名為 my.ini。
打開 my.ini,找到 #basedir 處編輯:(我的安裝在了C盤,路徑根據(jù)phpstudy的安裝路徑選擇)
basedir = C:\phpStudy7\MySQL
datadir = C:\phpStudy7\MySQL\data
4.下面執(zhí)行在 cmd 下進入 MySQL 的 bin 目錄(我的是 C:\phpStudy7\MySQL\bin),執(zhí)行如下圖:
(初始化數(shù)據(jù)庫:mysqld --initialize)

補充:如果是timestamp的錯誤,在my.ini中添加
[mysqld]
explicit_defaults_for_timestamp=true
如果有[ERROR]
mysqld: Error while setting value
''ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,'
to 'sql_mode'
在my.ini中添加[mysqld]
#sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
這一行前面沒有井號:sql_mode='NO_AUTO_CREATE_USER'
(E:\phpstudy\MySQL\bin>mysqld --initialize --user=mysql --console)
如果是錯誤:initialize specified but the data directory has files in it.aborting
管理員身份運行CMD。這個在C盤systerm32文件下可以找到,或者百度管理員身份運行cmd
然后cd 至mysql下的bin,運行mysql install,然后就成功了
執(zhí)行完后,重啟phpstudy
5.此時登入 MySQL 報錯:#1045 無法登錄 MySQL 服務(wù)器,
打開 my.ini,找到 [mysqld],在下面添加:
skip-grant-tables(此參數(shù)用于忘記mysql密碼)并保存
此時使用 root 賬號,密碼處按回車即可登錄。
6.如果想增加密碼,在無密碼的情況下進去mysql命令行,找到mysql數(shù)據(jù)庫的user表:修改密碼:
update user set authentication_string='新密碼' where user='root' ;
7.此時仍然用root密碼仍登錄不進去的話,在phpstudy修改密碼,原來的密碼為空