欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL8.0升級的踩坑歷險記

 更新時間:2021年10月28日 10:00:30   作者:freephp  
聽說mysql8的性能提升了很多,對于我這種喜歡把所有軟件升級到最新版的人來說,二話不說直接升級,這篇文章主要給大家介紹了關(guān)于MySQL8.0升級踩坑的相關(guān)資料,需要的朋友可以參考下

前言

最近忙于Fighting的項目,所以筆耕有些松懈,實為不該。

剛好遇到需要從MySQL5.7.33升級到MySQL8.0.x的需求,于是記錄一下整個升級過程,踩坑而過。

背景梗概:本地docker容器中使用的MySQL是5.7.33(鏡像系統(tǒng)用的是ubuntu16.04),而新項目在線上使用了MySQL8.0。從線上導(dǎo)出的sql文件(表結(jié)構(gòu)+數(shù)據(jù))中有一種低版本MySQL不會用到的字符編碼,一導(dǎo)入就報錯,遇到的字符集報錯如下所示:

 - Unknown collation: 'utf8mb4_0900_ai_ci'

一頓搜索之后,我也冷靜了下來,有兩種思路,一種是被我稱為掩耳盜鈴式解決方法,一種是根治的辦法。

掩耳盜鈴,顧名思義,不解決本質(zhì)問題,而是通過批量替換字符集的方式解決報錯,也就是把文件中所有的utf8mb4_0900_ai_ci 替換為:utf8_general_ci。

第二種就是保持和線上的MySQL版本一致,這樣就能支持該字符集。

于是我采用第二種方法,升級我的docker容器中的MySQL,順便也可以打包一個新的鏡像。

升級的過程也有點坎坷,但邏輯是清晰地。

1.先徹底卸載現(xiàn)有版本MySQL。

可以使用如下命令:

#刪除mysql的數(shù)據(jù)文件
sudo rm -R /var/lib/mysql/
#刪除mysql的配置文件

sudo rm -R /etc/mysql/

#自動卸載mysql(包括server和client)
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

記得一定要刪除配置文件,因為有可能不兼容。

2.下載deb并按照MySQL8.x。

可以去官網(wǎng)下載,官網(wǎng)地址為https://dev.mysql.com/repo/apt

我們選擇最新的deb下載,網(wǎng)址為:
https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb。在命令后使用wget命令進(jìn)行下載,如下:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb


下載完成之后使用dpkg命令并更新apt源,然后就可以進(jìn)行安裝了,完整命令如下所示:

dpkg -i mysql-apt-config_0.8.20-1_all.deb
apt-get update
apt-get install -y mysql-server

在最后一個命令執(zhí)行過程中,它會讓你輸入root密碼和一些基本配置,然后就可以完成安裝了。

因為是在ubuntu里面安裝的MySQL,所以啟動方式為:

service mysql start

你可以使用命令查看進(jìn)程運行情況,正常的時候類似如需輸出:

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock

3.創(chuàng)建用戶和配置權(quán)限。

MySQL8.0.x實際使用的過程中發(fā)現(xiàn)用戶授權(quán)和之前版本有點不同,需要分三步:

  1. 創(chuàng)建用戶。
  2. 分配權(quán)限。
  3. 刷新權(quán)限。

具體的sql語句如下,順序也是嚴(yán)格的:

create user 'freephp'@'%' identified by '176serTTc8Cg';

grant all privileges on dev_database.* to 'freephp'@'%' with grant option;

flush privileges;

上面的sql解釋一下,第一句是創(chuàng)建一個名為freephp的用戶,密碼為176serTTc8Cg,%代表可以任意主機進(jìn)行連接。

第二句的意思是把dev_database的所有權(quán)限賦予用戶freephp。

第三句就是立即刷新權(quán)限,讓新創(chuàng)建的權(quán)限生效。

自此歷險記大功告成,MySQL8.0的新特性還需要探索,下次再聊。

總結(jié)

到此這篇關(guān)于MySQL8.0升級踩坑的文章就介紹到這了,更多相關(guān)MySQL8.0升級踩坑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql數(shù)據(jù)庫分庫和分表方式(常用)

    Mysql數(shù)據(jù)庫分庫和分表方式(常用)

    本文主要給大家介紹Mysql數(shù)據(jù)庫分庫和分表方式(常用),涉及到mysql數(shù)據(jù)庫相關(guān)知識,對mysql數(shù)據(jù)庫分庫分表相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼

    MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼

    這篇文章主要介紹了MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • MySQL如何讓一個表中可以有多個自增列

    MySQL如何讓一個表中可以有多個自增列

    這篇文章主要介紹了MySQL如何讓一個表中可以有多個自增列,自增列可使用?auto_increment?來實現(xiàn),當(dāng)一個列被標(biāo)識為?auto_increment?之后,在添加時如果不給此列設(shè)置任何值,或給此列設(shè)置?NULL?值時,那么它會使用自增的規(guī)則來填充此列
    2022-06-06
  • 設(shè)置mysql5.7編碼集為utf8mb4的方法

    設(shè)置mysql5.7編碼集為utf8mb4的方法

    移動端的表情或者一些emoji是4字節(jié)的,但是utf-8是3字節(jié)的,這篇文章主要介紹了設(shè)置mysql5.7編碼集為utf8mb4的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Workbench通過遠(yuǎn)程訪問mysql數(shù)據(jù)庫的方法詳解

    Workbench通過遠(yuǎn)程訪問mysql數(shù)據(jù)庫的方法詳解

    這篇文章主要給大家介紹了Workbench通過遠(yuǎn)程訪問mysql數(shù)據(jù)庫的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • MySql UNION 一行轉(zhuǎn)多列的實現(xiàn)示例

    MySql UNION 一行轉(zhuǎn)多列的實現(xiàn)示例

    在MySQL命令行中,有時候我們會遇到一行的數(shù)據(jù)需要以多列的形式呈現(xiàn)的情況,本文就詳細(xì)介紹了一下一行轉(zhuǎn)多列的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 如何用word vb宏來生成sql

    如何用word vb宏來生成sql

    本篇文章是對利用word vb宏來生成sql的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • windows系統(tǒng)mysql壓縮包版本安裝過程

    windows系統(tǒng)mysql壓縮包版本安裝過程

    這篇文章主要介紹了windows系統(tǒng)mysql壓縮包版本安裝過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • MySQL約束和事務(wù)知識點詳細(xì)歸納

    MySQL約束和事務(wù)知識點詳細(xì)歸納

    在關(guān)系型數(shù)據(jù)庫中,事務(wù)的重要性不言而喻,只要對數(shù)據(jù)庫稍有了解的人都知道事務(wù),下面這篇文章主要給大家介紹了關(guān)于MySQL約束和事務(wù)知識點歸納的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • mysql 5.1版本修改密碼及遠(yuǎn)程登錄mysql數(shù)據(jù)庫的方法

    mysql 5.1版本修改密碼及遠(yuǎn)程登錄mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了mysql 5.1版本修改密碼及遠(yuǎn)程登錄mysql數(shù)據(jù)庫的方法,需要的朋友可以參考下
    2017-04-04

最新評論