Docker安装mysql8

本文前提是基于已安装Docker容器引擎。Ubuntu安装docker容器引擎_流沙QS的博客-CSDN博客

本文算是自己学习的随笔记录。

1.拉取mysql镜像

sudo docker search mysql
sudo docker pull mysql #不写版本号 默认拉取最新版本
sudo docker pull mysql:8.0.21 #写版本号,则拉取确定的版本

2.查看拉取的镜像

sudo docker images

3.初始化mysql容器,并启动容器。执行以下命令(亦可以编写为shell脚本)

docker run  -it -d  \
--name mysql8 \
--privileged=true \
--restart=always \
-p 13306:3306 \
-v /home/geng/soft/mysql8/data:/var/lib/mysql \
-v /home/geng/soft/mysql8/config:/etc/mysql/conf.d  \
-v /home/geng/soft/mysql8/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
mysql \
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8_general_ci

说明:

  • --name mysql8:给容器命名
  • --privileged=true:增加特殊权限,例如安全方面的
  • --restart=always:服务器启动时,自启动
  • -p 3310:3306:端口映射,第一个 3310 是映射出去的端口,第二个 3306 是这个容器的端口
  • 远程访问:IP 地址:3310 即可,如果是本地虚拟机就是 虚拟机 IP:3310
  • 注意:服务器上记得打开安全组,虚拟机上则记得注意防火墙
  • -v /home/mysql8/data:/var/lib/mysql:文件挂载 前为宿主机的目录位置,后为容器内文件对应位置
  • -e MYSQL_ROOT_PASSWORD=123456:环境变量设置,此处是设置 ROOT 用户登录密码
  • -e TZ=Asia/Shanghai mysql:此处是设置 MySQL 的时区,请注意这点,有时候你可能会发现你的服务器时区和你当前的电脑的时区是不一样的,这很有可能有一些隐藏问题噢。此处的 mysql为镜像名。
  • --lower_case_table_names=1:让表名忽略大小写
  •  -it 表示 与容器进行交互式启动
  • -d 表示后台启动
  • 参数顺序一定要对,--lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是mysql配置
  • 指定数据库编码集排序规则:
  • --character-set-server=utf8mb4
    --collation-server=utf8_general_ci

4.检查启动情况

4.1查看启动容器实例

sudo docker ps  # 查看所有正在运行的容器
sudo docker ps -a  #-a 表示查看所有容器 包括未删除的历史容器

sudo docker ps

4.2查看日志

sudo docker logs [容器名|容器id] #查看容器的执行日志

docker logs [容器名|容器id] -f # -f:查看实时日志信息

-f / --follow 跟踪输出日志 --since 显示自时间戳(例如2013-01-02T13:23:37Z)或相对(例如42分钟为42m)开始的日志 -- details 显示提供给日志的额外详细信息 -n, --tail 从日志末尾开始显示的行数(默认为"all") -t,-- timestamps 显示时间戳 --until 显示时间戳(如2013-01-02T13:23:37Z)或相对(如42分钟42m)之前的日志

sudo docker logs mysql8

5.容器交互

docker exec -it [容器名|容器id] bash

5.1创建mysql用户,远程授权登录

5.1.0容器交互进入mysql命令行

docker exec -it mysql8 bash

5.1.1登录mysql,创建并授权用户

mysql -uroot -p
create user user0@'%' identified with mysql_native_password by '123456';
grant all privileges on db0.* to use0@'%' with grant option;
flush privileges;

接下来就可以使用 mysql用户user0,密码:123456,来登录端口号为13306的mysql数据库了。

注:几个常用的命令

启动docker容器实例:sudo docker start[容器id|容器名]

停止docker容器实例:sudo docker stop [容器id|容器名]

重启docker容器实例:sudo docker restart[容器id|容器名]

删除docker容器实例(慎用):sudo docker rm [容器id|容器名]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流沙QS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值