Docker容器中mysql5.7迁移


叙述774 阅2 评

博客使用的是Docker容器安装mysql、nginx、php,由于mysql一开始设置3306不暴露公网,只能内部访问,无法用navicat类似工具快速完数据库迁移,这就有了这一篇记录

2022-10-14_195414.png

  1. 查看 Docker 容器 ID

    docker ps
    • 找到 MySql 的CONTAINER ID复制
  2. 将数据库文件导入容器

    docker cp 文件路径 mysql容器id:/
    • 例如:docker cp /root/blue.sql 5aead336082c:/
  3. exec 命令对指定的容器执行 bash

     docker exec -it 容器ID  bash
    • 例如:docker exec -it 5aead336082c bash
  4. 连接MySql

     mysql -uroot -p
    • 输入密码Enter password:
  5. 数据库创建使用导入

     create databases 数据库名;
    
     use 数据库名;
    
     source 数据库文件;  
    • 成功!Query OK, 0 rows affected (0.00 sec)
  6. 创建用户

     CREATE USER 'user'@'%' IDENTIFIED BY 'password';
     
     CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
    • 查看用户 select user from mysql.user;
    • 查看权限 show grants for root;
    • 删除用户 Delete FROM mysql.user Where User='user';
    • 修改用户密码 update mysql.user set password=password('新密码') where user='user';
  7. 授权

     GRANT ALL PRIVILEGES ON `blue`.* TO 'name'@'%'
     
     GRANT ALL PRIVILEGES ON `授权的数据库`.* TO '用户名'@'%'
  8. 刷新权限

     flush privileges;
    

    这样就可以实现在无映射端口访问数据库了

  9. 导出数据库

     docker exec -it 3d13977a2304 mysqldump -uroot -proot(密码) bluehe > /root/1.sql

本文 原创发布在 ©云心怀鹤。未经许可,谢绝转载。

最后更新 2024-02-25
评论 ( 2 )
隐私评论
  1. 大佬能出一篇教程吗

    2023-01-13 10:07天津市回复
    1. 云心怀鹤 博主
      @波吉

      网上搜教程吧,步骤多。

      2023-01-15 10:16日本回复
CC BY-NC-ND 4.0 DEED