docker运行MariaDB(解决中文乱码)

在docker上部署MariaDB,默认字符集是latin1,如果日后有中文会出现异常。因为latin1不支持中文,所以需要将字符集调整为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=输入数据库root用户的密码 mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

--name启动容器设置容器名称为mariadb
-d后台运行容器mariadb并返回容器id
-p设置容器的3306端口映射到主机3306端口
-v设置容器目录/var/lib/mysql映射到本地目录/data/mariadb/data
-e MYSQL_ROOT_PASSWORD设置环境变量数据库root用户密码
--character-set-server=utf8mb4设置 utf-8字符集
--collation-server=utf8mb4_unicode_ci修改指定数据库的Collation

5、查看容器是否运行docker ps -a
6、修改容器为自启动docker container update --restart=always 容器id
设置--restart=always 参数的时候, 设置了此参数容器退出了会自动重启, 宿主机重启了容器也能自动重启
7、其他常用命令:
docker start 容器id  启动容器
docker stop 容器id  停止容器

注:如果容器没有异常退出并且工具连接不上数据库,先停止容器再启动容器,就可以解决。

附:检查数据库编码

show VARIABLES like 'char%';
检查数据库编码

附:
可以编辑

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

在【mysqld】下面添加两行

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

重启MariaDB即可

systemctl restart mariadb

你可能感兴趣的:(docker运行MariaDB(解决中文乱码))