类别:SQL数据库 / 日期:2025-11-10 / 浏览:19 / 评论:0
在 CentOS 中使用 Docker 容器中的 MySQL 导入数据库,需要先创建数据库,然后导入数据。以要导入数据chencun.sql,容器名称为:my_sql,数据库为:spd为例,以下是详细步骤:
1. 首先创建数据库
# 进入 MySQL 容器
docker exec -it my_sql
# 登录 MySQL(根据你的 MySQL 配置)
mysql -u root -p
# 在 MySQL 中创建数据库
CREATE DATABASE spd;
exit
或者一步完成:
# 直接执行创建数据库命令
docker exec -i my_sql mysql -u root -p -e "CREATE DATABASE spd;"
2. 导入数据库的几种方法
方法1:直接导入(推荐)
# 将解压后的 SQL 文件直接导入到容器中的 MySQL
docker exec -i my_sql mysql -u root -p spd < chencun.sql
方法2:如果 SQL 文件还是压缩状态
# 直接解压并导入(无需先解压到本地)
gunzip -c chencun.sql.gz | docker exec -i my_sql mysql -u root -p spd
方法3:先将文件复制到容器再导入
# 解压 SQL 文件
gunzip -c chencun.sql.gz > chencun.sql
# 复制 SQL 文件到容器
docker cp chencun.sql my_sql:/tmp/
# 进入容器导入
docker exec -it my_sql
mysql -u root -p spd < /tmp/chencun.sql
# 清理临时文件
rm /tmp/chencun.sql
exit
3. 完整的一键导入脚本
#!/bin/
# 设置变量
SQL_FILE="chencun.sql.gz"
CONTAINER_NAME="my_sql"
DB_NAME="spd"
MYSQL_USER="root"
MYSQL_PASSWORD="your_password"
# 创建数据库
docker exec -i $CONTAINER_NAME mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE IF NOT EXISTS $DB_NAME;"
# 导入数据
echo "正在导入数据库..."
gunzip -c $SQL_FILE | docker exec -i $CONTAINER_NAME mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME
echo "数据库导入完成!"
4. 验证导入结果
# 查看数据库
docker exec -i my_sql mysql -u root -p -e "SHOW DATABASES;"
# 查看导入的表
docker exec -i my_sql mysql -u root -p -e "USE spd; SHOW TABLES;"
# 查看表数据量
docker exec -i my_sql mysql -u root -p -e "USE spd; SELECT COUNT(*) FROM your_table_name;"
注意事项:
替换容器名:将 my_sql 替换为你的实际 MySQL 容器名称
MySQL 认证:确保使用正确的用户名和密码
文件路径:确保在正确的目录下执行命令
权限:确保有足够的权限访问 SQL 文件和 MySQL
推荐使用方法2:
gunzip -c chencun.sql.gz | docker exec -i my_sql mysql -u root -p spd
这种方法最简洁,不需要在本地生成解压后的 SQL 文件,直接流式导入。
