使用mysqldump备份数据库

banner

  1. 进入 MySQL 容器:

    首先,你需要进入正在运行的 MySQL 容器的命令行界面。可以使用以下命令:

    docker exec -it <container_name_or_id> bash

    <container_name_or_id> 替换为你的 MySQL 容器的名称或 ID。

  2. 使用 mysqldump 命令:

    在容器内部的命令行界面中,你可以使用 mysqldump 命令备份数据库,方式与之前相同。命令语法如下:

    mysqldump -u <username> -p <database_name> > <backup_file.sql> //注意这里有个">"箭头

    替换 <username><database_name><backup_file.sql> 为适当的值。

    例如,备份名为 mydatabase 的数据库到文件 backup.sql

    mysqldump -u root -p mydatabase > backup.sql

    如果只需要表结构,不需要表数据,则加参数--no-data,
    例如:

    mysqldump -u root -p --no-data mydatabase > backup_structure.sql
  3. 执行命令并输入密码:

    在容器内部执行 mysqldump 命令,它会提示你输入数据库用户的密码。输入密码后,命令会开始生成备份文件。

  4. 等待备份完成:

    等待 mysqldump 命令执行完成。在容器内等待命令执行,不要中断它。

  5. 确认备份文件:

    备份完成后,你将在容器内部的当前目录中找到一个名为 <backup_file.sql> 的备份文件。

  6. 将备份文件复制到主机:

    退出容器的命令行界面,然后使用 docker cp 命令将备份文件从容器复制到主机上,以便你可以在主机上找到备份文件。

    docker cp <container_name_or_id>:<backup_file.sql> /path/on/host

    替换 <container_name_or_id><backup_file.sql>/path/on/host 为适当的值。

现在,你已经在 Docker 容器中使用 mysqldump 命令备份了 MySQL 数据库,并将备份文件复制到了主机上。备份文件 backup.sql 包含数据库的结构和数据,可以用于恢复数据库。

迁移dump文件

scp -r [email protected]:/Users/user/source/devops/mysql ./ //这里需要输入A电脑到密码

在B电脑docker恢复数据库dump文件(恢复之前需要先创建对应的数据库,否则无法恢复)

要在另一台机器的容器中恢复 MySQL 数据库,你可以使用 mysql 命令和之前生成的备份文件。以下是一般步骤:

  1. 将备份文件复制到另一台机器:

    将之前生成的备份文件(如 auth.sql)从原始机器复制到新机器。你可以使用 docker cp 命令将备份文件从主机复制到容器内。

    docker cp /path/to/auth.sql <container_name_or_id>:/

    /path/to/auth.sql 替换为实际的文件路径,将 <container_name_or_id> 替换为目标容器的名称或 ID。

  2. 进入 MySQL 容器:

    在新机器上,进入运行中的 MySQL 容器的命令行界面,可以使用以下命令:

    docker exec -it <container_name_or_id> bash
  3. 使用 mysql 命令恢复数据库:

    在容器内部的命令行界面中,你可以使用 mysql 命令来执行备份文件以恢复数据库。命令语法如下:

    mysql -u <username> -p <database_name> < <backup_file.sql>

    替换 <username><database_name><backup_file.sql> 为适当的值。

    例如,恢复名为 auth 的数据库使用名为 auth.sql 的备份文件:

    mysql -u root -p auth < /auth.sql
  4. 执行命令并输入密码:

    在容器内部执行 mysql 命令,它会提示你输入数据库用户的密码。输入密码后,命令将执行备份文件中的 SQL 命令来恢复数据库。

  5. 等待恢复完成:

    等待 mysql 命令执行完成。在容器内等待命令执行,不要中断它。

  6. 确认恢复成功:

    恢复完成后,你可以通过登录到 MySQL 容器并执行查询来确认数据库已经成功恢复。

请注意,恢复数据库会执行备份文件中的所有 SQL 命令,包括创建表、插入数据等。确保在恢复之前备份数据,特别是在生产环境中。

创建mysql用户并授权访问数据库

  1. create user 'username'@'%' identified by 'username'
  2. GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'%';
  3. 执行 FLUSH PRIVILEGES; 命令来刷新权限,以便新的权限设置立即生效。