在docker上部署MariaDB,默認(rèn)字符集是latin1末捣,如果日后有中文會出現(xiàn)異常。因?yàn)閘atin1不支持中文箩做,所以需要將字符集調(diào)整為utf8。
Docker安裝MariaDB
1安吁、下載docker鏡像docker pull mariadb
2柳畔、查看本地已有的所有鏡像docker images
3、建一個(gè)目錄作為和容器的映射目錄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è)置了此參數(shù)容器退出了會自動重啟泻红, 宿主機(jī)重啟了容器也能自動重啟
7、其他常用命令:
docker start 容器id
啟動容器
docker stop 容器id
停止容器
注:如果容器沒有異常退出并且工具連接不上數(shù)據(jù)庫讹躯,先停止容器再啟動容器缠劝,就可以解決惨恭。
附:檢查數(shù)據(jù)庫編碼
show VARIABLES like 'char%';
附:
可以編輯
/etc/my.cnf.d/server.cnf
在【mysqld】下面添加兩行
init-connect='SET NAMES utf8'
character-set-server = utf8
重啟MariaDB即可
systemctl restart mariadb