Docker安装MySQL容器
安装MySQL
# 查找官方镜像
docker search mysql
# 下载mysql镜像
sudo docker pull mysql:5.7
# 检查当前所有Docker下载的镜像
docker images
启动MySQL容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
-d mysql:5.7
命令 |
描述 |
-p 3306:3306 |
将容器的3306(后面那个) 端口映射到主机的3306(前面那个) 端口 |
–name mysql |
启动容器的名字 |
-v /usr/local/docker/mysql/conf:/etc/mysql \ |
挂载mysql配置文件 |
-v /usr/local/docker/mysql/logs:/var/log/mysql \ |
挂载mysql日志文件 |
-v /usr/local/docker/mysql/data:/var/lib/mysql \ |
设置数据存储路径 冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径 |
-e MYSQL_ROOT_PASSWORD=123456 \ |
MySql启动需要的账户密码,默认root账户 |
--restart=always |
设置docker内容器的自启动 |
-d |
后台运行 |
mysql:5.7 |
本地运行的版本 |
\ |
shell 命令换行 |
配置MySQL外网连接权限
# 进入容器
docker exec -it mysql /bin/bash
# 登录mysql
mysql -uroot -p123456
# 设置外网访问授权
grant all privileges on *.* to root@'%' identified by "password"
# 刷新权限
flush privileges
# 授权后 更新一下密码,否则连接时候报错1045
alter user 'root'@'%' identified with mysql_native_password by '123456'
# 再次刷新权限
flush privileges
# 退出mysql
开放服务器3306端口
systemctl start firewalld
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload