MySQL如何從5.5升級到8.0(使用命令行升級)
誰沒事想重裝數據庫啊
學到了數據庫原理,實驗作業(yè)里面有新建角色的SQL語句,但是我打上去運行就給我報錯了,本來想去找替代的語法的,結果告訴我role是MySQL8新增的,MySQL8之前都沒有。要不,升級一下吧。
其實第一次裝MySQL的時候裝的就是8.0版本的,后來跟著寫一個小項目,MySQL版本是5.5的,寫的時候很難受,就直接卸掉了8.0,重裝了5.5,卸載重裝的時候覺得甚是不合理,折騰了好久,當時就想再也不要裝數據庫了。
然后真香了,這次就想用簡單一點的方式安裝。
準備
萬事先備份
我用的數據庫編輯軟件是sqlyog,點擊菜單欄數據庫–>備份/導出–>備份數據庫,轉存到SQL
再選擇相應的數據庫保存到你想要保存的路徑就可以了
1、下載要安裝的MySQL版本
這里是官網
https://downloads.mysql.com/archives/community/ 或者點擊這里下載
隨機選擇一個8.0版本的壓縮包,不建議選最新的
然后將安裝包解壓到你要安裝的目錄
我選擇放在了上次安裝的目錄:D:\develop\MySQL
2、配置環(huán)境變量
新建系統(tǒng)變量
- 變量名:MYSQL_HOME
- 變量值:D:\develop\MySQL\mysql-8.0.20-winx64\bin
.
在Path中新建路徑:%MYSQL_HOME%
3、添加配置文件
新建my.ini添加至mysql-8.0.20-winx64目錄下
# my.ini [mysqld] #skip-grant-tables # 設置3306端口 port=3306 # 設置mysql的安裝目錄 basedir=D:\develop\MySQL # 設置mysql數據庫的數據的存放目錄 datadir=C:\ProgramData\MySQL/MySQL Server 8.0\Data\ # 允許最大連接數 max_connections=200 # 允許連接失敗的次數。這是為了防止有人從該主機試圖攻擊數據庫系統(tǒng) max_connect_errors=10 # 服務端使用的字符集默認為UTF8 character-set-server=utf8 # 創(chuàng)建新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 默認使用“mysql_native_password”插件認證 default_authentication_plugin=mysql_native_password [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [client] # 設置mysql客戶端連接服務端時默認使用的端口 port=3306 default-character-set=utf8
安裝
1、卸載MySQL5.5
以管理員身份運行命令提示符
cd 到MySQL5.5的bin目錄C:\Windows\system32>cd D:\develop\MySQL\MySQL Server 5.5\bin
命令行輸入命令:mysqld --remove mysql5
可能會報錯
打開任務管理器查看MySQL名稱,原名稱是mysql5
重新鍵入mysqld --remove mysql5
顯示服務器正在運行,需停止服務器
方法一:直接在任務管理器的服務中找到mysql5,右鍵停止運行
方法二:控制面板輸入net stop mysql5
再次輸入mysqld --remove mysql5
2、安裝新的MySQL8.0
cd到D:\develop\MySQL\mysql-8.0.20-winx64\bin目錄下
安裝mysqld -install
初始化mysqld --initialize --user=mysql --console
Data目錄不可用,C:\ProgramData\MySQL\MySQL Server 8.0\Data\這個目錄我只是參照原來的目錄把5.5改成了8.0填進了my.ini文件,實際不存在,手動建C:\ProgramData\MySQL\MySQL Server 8.0\Data\文件夾后成功
產生的臨時密碼會用到,先保存下來
進入數據庫mysql -u root -p
再輸入上一步生成的臨時密碼
顯示MySQL連接出錯
嘗試打開數據庫連接net start mysql
服務器無法啟動,可能是my.ini沒有放在bin下
或是原來的Data沒有刪除,導致出錯,我原來的C:\ProgramData\MySQL\MySQL Server 5.5文件夾沒有刪除,刪除之后就可以連接上了
輸入臨時密碼還是不能進數據庫
改了一條指令mysqladmin -u root -pshutdown
再輸入密碼連接成功mysql -uroot -pJ(I%Ea2h;MDc
這時候已經是8.0版本了
修改密碼ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
BY后面跟你自己的密碼
退出數據庫再此進入就可以用新的密碼了
后續(xù)
備份導入
SQLyog直接打開已經自動連接上新的數據庫了,只有幾個基本的數據庫
可以把備份sql文件導入還原
數據恢復成功
總結
到此這篇關于MySQL如何從5.5升級到8.0的文章就介紹到這了,更多相關MySQL5.5升級到8.0內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- mysql從5.7平滑升級到8.0.27的實現
- MySQL 8.0.26版本升級32版本查詢數據為空的解決方案
- MySQL本地版本升級超詳細教程(從5.5.20升到8.0.21)
- MySQL5.7升級MySQL8.0的完整卸載與安裝及連接Navicat的步驟
- MySQL和MySQL驅動mysql-connector-java升級到8.0.X版本問題
- 升級到mysql-connector-java8.0.27的注意事項
- MySQL8.0升級的踩坑歷險記
- Docker版的MySQL5.7升級到MySQL8.0.13,數據遷移
- win2008下mysql8.0.11升級mysql8.0.17版本詳細步驟
- MySQL8.0就地升級到MySQL8.4.0的方法
相關文章
mysql啟動報錯MySQL server PID file could not be found
這篇文章主要介紹了mysql啟動報錯MySQL server PID file could not be found,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11面試被問select......for update會鎖表還是鎖行
select … for update 是我們常用的對行加鎖的一種方式,那么select......for update會鎖表還是鎖行,本文就詳細的來介紹一下,感興趣的可以了解一下2021-11-11Last_Errno:?1062,Last_Error:?Error?Duplicate?entry
Last_Errno:?1062,Last_Error:?Error?Duplicate?entry?...?for?key?PRIMARY2014-02-02MySQL函數CONCAT、CONCAT_WS、GROUP_CONCAT用法詳解
這篇文章主要介紹了MySQL函數CONCAT、CONCAT_WS、GROUP_CONCAT用法詳解,CONCAT 函數用于將兩個字符串連接為一個字符串,本文通過實例代碼詳細講解,需要的朋友可以參考下2023-02-02