使用docker安装mysql
1.下载mysql镜像文件
docker pull mysql:5.7.28
下载mysql镜像的时候, 竟然报错了
[root@localhost ~]# docker pull mysql:5.7.28
Error response from daemon: Get https://registry-1.docker.io/v2/library/mysql/manifests/5.7.28: net/http: TLS handshake timeout
[root@localhost ~]#
然后网上查了一下, 设置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xirgurp7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
加速源:
https://registry.docker-cn.com
http://hub-mirror.c.163.com
https://3laho3y3.mirror.aliyuncs.com
http://f1361db2.m.daocloud.io
https://mirror.ccs.tencentyun.com
检查一下mysql奖项是否下载
docker images
2 创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.28
参数说明
docker run -p 3306:3306 --name mysql\ #将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql\ #将日志文件挂载到主机
-v /mydata/mysql/data:/var/lib/mysql\ #将数据文件挂载到主机
-v /mydata/mysql/conf:/etc/mysql\ #配置文件挂载到主机
-e MYSQL_ROOT_PASSWORD=123456 #设置mysql的root用户密码为123456
-d mysql:5.7.28 #-d:表示后台运行mysql
启动成功如下图
3.查看docker中正在运行的容器
docker ps
如下图所示
4.进入mysql容量器内部
docker exec -it mysql /bin/bash
#查看目录下的文件
ls
#退出容器
exist
5.修改mysql配置
vi /mydata/mysql/conf/my.cnf
加入以下配置内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
注意:解决mysql连接慢的问题
在配置文件中
skip-name-resolve #意思是跳过域名解析
6.重启mysql
docker restart mysql # mysql 是定义好的容器名
7、修改mysql5.7.28版本的root密码
前提条件是,登录mysql直接修改user表
update mysql.user set authentication_string=password('123qwe') where user='root';
flush privileges;
8.设置mysql跟随docker启动而自动启动
docker update mysql --restart=always