MySQL Docker配置
启动方式
进行配置前需要先启动docker
# step1:从远程拉去mysql镜像
docker pull mysql
# 运行docker 指定运行名称为db0, 映射本机端口3306到虚拟机的3306端口,并设定root用户默认密码为root
docker run -d --name db0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
# 启动mysql Way1: 通过直接执行命令
docker exec -it db0 mysql -uroot -proot
# 启动mysql Way2: 进入bash
docker exec -it db0 bash
授予权限
# 授予权限
grant all privileges on *.* to 'root'@'%' ;
# 刷新权限
flush privileges;
修改字符集
启动后,查看字符集
mysql> show variables like '%character%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
配置文件修改
# 进入配置文件,在主机环境通过bash的方式进入docker
docker exec -it db0 bash
# 由于docker中没有vi命令,无法直接进行编辑,故拷贝文件到主机进行修改
docker cp db0:/etc/mysql /opt/
# 进入主机的/opt/mysql/ 目录
cd /opt/mysql
# 在my.conf 中插入下面这一条语句
character-set-server=utf8
# 进入主机的/opt/mysql/conf.d/ 目录
cd /opt/mysql/conf.d
# 在mysql.cnf 中插入下面这一条语句
default-character-set=utf8
# 将修改后的结果复制回db0中
docker cp /opt/mysql/ db0:/etc/
# 重新启动容器
docker restart db0
重新查看字符集
mysql> show variables like "%character%";
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb3 |
| character_set_connection | utf8mb3 |
| character_set_database | utf8mb3 |
| character_set_filesystem | binary |
| character_set_results | utf8mb3 |
| character_set_server | utf8mb3 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)