升級 phpStudy 中 MySQL 版本至 5.7.17


 今天在往本地導數據表的時候老是報錯:

[Err] 1294 - Invalid ON UPDATE clause for '字段名' column

報錯的數據表字段:

`字段名` 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,選的版本是 5.7.17(后面才發現 5.7 版本的安裝、系統表字段等又和之前的版本有所不同)。

 

 步驟:

0x00

備份原來 phpStudy 中 MySQL 安裝目錄

 

0x01

把下載的 MySQL 壓縮文件解壓至 phpStudy 下的 MySQL目錄,復制 my-default.ini ,重命名為 my.ini。

打開 my.ini,找到 #basedir 處編輯:

basedir=D:/phpStudy/MySQL
datadir=D:/phpStudy/MySQL/data

 

0x02

把 MySQL 安裝路徑添加至系統環境變量

 

0x03

在 cmd 下進入 MySQL 的 bin 目錄(我的是 D:/phpStudy/MySQL/bin),執行:

mysqld --initialize

初始化數據庫

 

0x04

安裝服務:

mysqld -install

啟動服務:

net start MySQL

 

0x05

此時登入 MySQL 報錯:

C:\Users\dell>mysql -uroot -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

嘗試修改 root 用戶密碼:

打開 my.ini,找到 [mysqld],在下面添加:

skip-grant-tables

此時使用 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;

 

注釋掉 my.ini 中剛才添加的

skip-grant-tables

 

重新登錄。

 

此時查看 mySQL 版本:

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.17    |
+-----------+

 

 

參考:

phpStudy升級MySQL教程

mysql5.7 安裝方法 (跟舊的不一樣了)

windows環境中mysql忘記root密碼的解決辦法

修改MySQL 5.7.9版本的root密碼方法以及一些新變化整理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM