类别: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 文件,直接流式导入。


打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章