docker運(yùn)行MariaDB(解決中文亂碼)

在docker上部署MariaDB,默認(rèn)字符集是latin1,如果日后有中文會出現(xiàn)異常。因為latin1不支持中文,所以需要將字符集調(diào)整為utf8。

Docker安裝MariaDB

1、下載docker鏡像docker pull mariadb
2、查看本地已有的所有鏡像docker images
3、建一個目錄作為和容器的映射目錄sudo mkdir -p /data/mariadb
4、啟動鏡像
docker run -d -p 3306:3306 --name mariadb -v /data/mariadb/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=輸入數(shù)據(jù)庫root用戶的密碼 mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

--name啟動容器設(shè)置容器名稱為mariadb
-d后臺運(yùn)行容器mariadb并返回容器id
-p設(shè)置容器的3306端口映射到主機(jī)3306端口
-v設(shè)置容器目錄/var/lib/mysql映射到本地目錄/data/mariadb/data
-e MYSQL_ROOT_PASSWORD設(shè)置環(huán)境變量數(shù)據(jù)庫root用戶密碼
--character-set-server=utf8mb4設(shè)置 utf-8字符集
--collation-server=utf8mb4_unicode_ci修改指定數(shù)據(jù)庫的Collation

5、查看容器是否運(yùn)行docker ps -a
6、修改容器為自啟動docker container update --restart=always 容器id
設(shè)置--restart=always 參數(shù)的時候, 設(shè)置了此參數(shù)容器退出了會自動重啟, 宿主機(jī)重啟了容器也能自動重啟
7、其他常用命令:
docker start 容器id  啟動容器
docker stop 容器id  停止容器

注:如果容器沒有異常退出并且工具連接不上數(shù)據(jù)庫,先停止容器再啟動容器,就可以解決。

附:檢查數(shù)據(jù)庫編碼

show VARIABLES like 'char%';
檢查數(shù)據(jù)庫編碼

附:
可以編輯

/etc/my.cnf.d/server.cnf

在【mysqld】下面添加兩行

init-connect='SET NAMES utf8'  
character-set-server = utf8

重啟MariaDB即可

systemctl restart mariadb
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容