01 拉取mysql镜像
docker pull mysql
02 启动容器
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d mysql
–name:给容器起个名字
-e MYSQL_ROOT_PASSWORD=123456:设置mysql的root密码为123456
-p 13306:3306:宿主机的13306端口与容器的3306端口进行映射,当我们外网进行访问时就链接13306端口
-d:表示以守护进程的方式运行
mysql:tag:需要运行的镜像的名字和版本,不写tag默认为lasted版本
03 启动成功后,还不能被外网访问,需要进行下面设置
进入到容器中
docker exec -it mysql8 /bin/bash
连接上mysql
mysql -uroot -p
修改允许外网访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
04 解决在docker容器里进入MySQL控制台时,查询数据,中文乱码的问题
(0) 查看表中的数据,发现是乱码
(1) 连接上MySQL后,查看数据库编码
show variables like '%char%';
(2) 将上一步看到的value为latin1的修改为utf8
mysql> set character_set_client = utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_connection=utf8;
(3) 再查询数据时,中文就不会乱码了
(4) 上述操作只是零时修改编码,其它客户端连接到MySQL后不会生效。要永久生效,需要我们去修改MySQL的配置文件。