将MariaDB镜像默认编码设为utf8mb4

在CentOS系统下数据库为MariaDB,数据库的默认编码方式不能满足需求,我们需把编码方式设为utf-8mb4, 修改方式有两种:

  • 数据库配置文件设置
  • 数据库参数设置

下面以数据库配置文件的设置为例说明MariaDB默认编码方式的设置,这种方式即灵活,也能彻底修改数据库的编码方式。

1、 创建my.cnf配置文件:

[client-server]
# Port or socket location where to connect
port = 3306
socket = /run/mysqld/mysqld.sock

# Import all .cnf files from configuration directory

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mariadbd]
skip-host-cache
skip-name-resolve
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

!includedir /etc/mysql/mariadb.conf.d/
!includedir /etc/mysql/conf.d/

将my.cnf文件放到宿主机的/root/mariadb/目录下。

2、创建文件夹作为数据库文件存放位置:

mkdir -p /mydata/mariadb/mysql

3、运行镜像

docker run --net bdnetwork --ip 172.100.0.40 -v /mydata/mariadb/mysql:/var/lib/mysql -v /root/mariadb/my.cnf:/etc/mysql/mariadb.cnf --name bd_mariadb -e MARIADB_ROOT_PASSWORD=123456 -d -p 3306:3306 mariadb

说明:

(1)此前已经创建了子网络,创建命令为:

docker network create --subnet=172.100.0.0/16 bdnetwork

创建子网络的目的是为了设置容器的IP为固定的IP。

--net bdnetwork 参数设置子网络,--ip 172.100.0.40设置容器的IP

(2)  设置数据库数据文件保存位置:

-v /mydata/mariadb/mysql:/var/lib/mysql  将宿主机的/mydata/mariadb/mysql目录映射到容器的/var/lib/mysql目录,即数据库数据文件保存目录。

(3)设置数据库配置文件位置

-v /root/mariadb/my.cnf:/etc/mysql/mariadb.cnf  将宿主机的/root/mariadb/my.cnf文件映射为容器的/etc/mysql/mariadb.cnf文件,此文件为MariaDB数据库的配置文件,

(4)设置容器的名称:

--name bd_mariadb

(5)设置数据库root用户默认密码:

-e MARIADB_ROOT_PASSWORD=123456

(6)端口映射:

-p 3306:3306  将容器的3306端口映射为宿主机的3306端口

登录MariaDB数据库,查看数据默认编码方式:

mysql -u root -p

执行以代码:

show variables like '%char%';

可以看到数据库的默认编码方式已经是utf8mb4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值