1. 使用 Docker 安装 MySQL 数据库

1.1 拉取 MySQL 镜像


首先,从 Docker Hub 上拉取 MySQL 官方镜像。你可以根据需求选择不同的版本,这里以 MySQL 8.0 为例:


收起

bash

docker pull mysql:8.0

1.2 运行 MySQL 容器


使用以下命令运行 MySQL 容器,并进行相关配置:


收起

bash

docker run -d \
  --name mysql-container \
  -e MYSQL_ROOT_PASSWORD=your_password \
  -p 3306:3306 \
  -v /your/host/path:/var/lib/mysql \
  mysql:8.0


参数解释:


  • -d:让容器在后台运行。

  • --name mysql-container:为容器指定名称,方便后续管理。

  • -e MYSQL_ROOT_PASSWORD=your_password:设置 MySQL 的 root 用户密码。

  • -p 3306:3306:将宿主机的 3306 端口映射到容器内的 3306 端口,以便外部可以访问 MySQL 服务。

  • -v /your/host/path:/var/lib/mysql:将宿主机的指定目录挂载到容器内的 MySQL 数据存储目录,实现数据持久化。

2. 连接到 MySQL 数据库


使用以下命令进入 MySQL 容器的命令行界面:


收起

bash

docker exec -it mysql-container mysql -uroot -p


然后输入之前设置的 root 密码,即可进入 MySQL 的命令行客户端。

3. 数据库的增删改查操作

3.1 创建数据库


收起

sql

CREATE DATABASE mydatabase;


该命令用于创建一个名为 mydatabase 的数据库。

3.2 使用数据库


收起

sql

USE mydatabase;


此命令用于切换到 mydatabase 数据库,后续的操作将在该数据库中进行。

3.3 创建表


收起

sql

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);


该命令创建了一个名为 users 的表,包含 id(自增主键)、name(字符串类型)和 age(整数类型)三个字段。

3.4 插入数据(增)


收起

sql

INSERT INTO users (name, age) VALUES ('John', 25);


此命令向 users 表中插入一条记录,name 为 Johnage 为 25。

3.5 查询数据(查)


收起

sql

SELECT * FROM users;


该命令用于查询 users 表中的所有记录。

3.6 更新数据(改)


收起

sql

UPDATE users SET age = 26 WHERE name = 'John';


此命令将 users 表中 name 为 John 的记录的 age 字段更新为 26。

3.7 删除数据(删)


收起

sql

DELETE FROM users WHERE name = 'John';


该命令将 users 表中 name 为 John 的记录删除。

4. 数据库备份

4.1 本地备份


使用 mysqldump 工具可以对 MySQL 数据库进行备份。在宿主机上执行以下命令:


收起

bash

docker exec mysql-container mysqldump -uroot -pyour_password mydatabase > /your/host/path/mydatabase_backup.sql


该命令将 mydatabase 数据库备份到宿主机的指定文件中。

4.2 异地备份


若要将备份文件传输到其他服务器,可以使用 scp 命令(前提是已经配置好 SSH 密钥认证或可以输入目标服务器的密码)。假设目标服务器的 IP 地址为 192.168.1.100,用户名为 user,执行以下命令:


收起

bash

scp /your/host/path/mydatabase_backup.sql user@192.168.1.100:/remote/path/


此命令将本地的备份文件传输到目标服务器的指定路径下。

5. 恢复数据库


如果需要恢复数据库,可以使用以下命令:


收起

bash

docker exec -i mysql-container mysql -uroot -pyour_password mydatabase < /your/host/path/mydatabase_backup.sql


该命令将备份文件中的数据恢复到 mydatabase 数据库中