Docker安装运行mysql

1. 查找镜像

docker search mysql

在这里插入图片描述

2.拉取镜像

拉起MySQL镜像(:5.7 表示5.7版本)

docker pull mysql:5.7

在这里插入图片描述

3.运行容器

docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

参数说明:

run run 是运行一个容器
-d  表示后台运行
-p  表示容器内部端口和服务器端口映射关联
–privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
-v /docker/mysql/conf/my.cnf:/etc/my.cnf 将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
-v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
-e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
–name mysql     设值容器名称为mysql
mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
–character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码

4.配置远程访问

要配置远程访问,先要打开 MySQL 的控制终端,使用下面的命令开启:

# 进入 MySQL 容器

docker exec -it mysql bash 
# 登录 MySQL,执行后输入密码进入 MySQL

mysql -uroot -p 
# 选择使用 mysql 数据库

use mysql; 
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# {usernama} 是远程访问登录的用户名,不建议用 root;
# {password} 是远程访问的登录密码;
# '%'代表的是所有IP,如果可以尽量设置指定 IP 或 IP 段
 
FLUSH PRIVILEGES;
# 刷新权限

5.设置开机自启动

docker update --restart=always 容器id

6.docker进入到Mysql容器

docker exec -it 容器id /bin/bash

7.问题记录

成功运行了mysql的容器然后也开启了端口映射、本机可以正常访问telnet端口3306也是正常的。但是远程就是访问不了检查了防火墙是关闭的状态,没办法reboot重启了一下主机在运行mysql就正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值