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

MySQL8.0升級(jí)的踩坑歷險(xiǎn)記

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

前言

最近忙于Fighting的項(xiàng)目,所以筆耕有些松懈,實(shí)為不該。

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

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

 - Unknown collation: 'utf8mb4_0900_ai_ci'

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

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

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

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

升級(jí)的過(guò)程也有點(diǎn)坎坷,但邏輯是清晰地。

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

可以使用如下命令:

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

sudo rm -R /etc/mysql/

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

記得一定要?jiǎng)h除配置文件,因?yàn)橛锌赡懿患嫒荨?/p>

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

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

因?yàn)槭窃趗buntu里面安裝的MySQL,所以啟動(dòng)方式為:

service mysql start

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

/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實(shí)際使用的過(guò)程中發(fā)現(xiàn)用戶授權(quán)和之前版本有點(diǎn)不同,需要分三步:

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

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

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

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

flush privileges;

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

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

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

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    MySQL如何讓一個(gè)表中可以有多個(gè)自增列

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

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

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

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

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

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

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

    如何用word vb宏來(lái)生成sql

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

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

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

    MySQL約束和事務(wù)知識(shí)點(diǎn)詳細(xì)歸納

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

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

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

最新評(píng)論