Docker容器中mysql5.7迁移

博客使用的是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 [colour type=" red"]5aead336082c[/colour] 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

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

寻鹤 寻鹤 2022年08月30日
    16天前 把以前已有的logo重制了下,用ps描边使得logo更加圆润些,放大不模糊,如现在头像显示;同样也重制并形成了新的的评论回复页面,回复的主题是“书信”。
    1. autMan对接go-cqHttp简单好用
    2. 一个人生活有什么区别?
    2
    102 of 109