mysqldump 导出与导入

批量操作

导出数据库脚本(export.sh):

#!/bin/bash

# 数据库连接信息
DB_HOST="localhost"
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="your_database_name"

# 导出表结构和表数据到文件
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASSWORD --no-data --skip-lock-tables $DB_NAME > structure.sql
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASSWORD --no-create-info --skip-triggers $DB_NAME > data.sql

echo "导出完成,表结构保存在structure.sql文件中,表数据保存在data.sql文件中。"

导入数据库脚本(import.sh):

#!/bin/bash

# 数据库连接信息
DB_HOST="localhost"
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="your_database_name"

# 导入表结构和表数据
mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD $DB_NAME < structure.sql
mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD $DB_NAME < data.sql

echo "导入完成。"

请注意,你需要将上述脚本中的"your_database_name"替换为你要导入和导出的实际数据库名称(可能需要先CREATE DATABASE xx)。另外,为了安全起见,确保只有具备足够权限的用户可以访问和执行这些脚本。

在运行这些脚本之前,请确保MySQL已经正确安装并运行,并且Shell脚本具有执行权限。你可以通过chmod +x export.sh和chmod +x import.sh给予脚本执行权限。

使用方法:

打开终端并切换到脚本所在目录。

运行导出脚本:./export.sh。

等待脚本执行完成,导出的表结构保存在structure.sql文件中,表数据保存在data.sql文件中。

如果需要导入数据库,请将导出的structure.sql和data.sql文件放在脚本同一目录下,并运行导入脚本:./import.sh。

等待脚本执行完成,数据库将被导入。

请注意,在导入数据库之前,确保没有重要的数据存在,因为导入脚本将覆盖数据库中的现有数据。在执行导入脚本之前,请确保已经备份了数据库。

单个库操作

要导出 MySQL 数据库表结构并导入到另一个数据库中,您可以按照以下步骤进行操作:

使用 mysqldump 命令导出源数据库的表结构到一个 SQL 文件。运行以下命令:

mysqldump -u 用户名 -p --no-data 源数据库名 > 导出文件名.sql

其中,用户名 是源数据库的用户名,源数据库名 是要导出表结构的数据库名称,导出文件名.sql 是保存导出结果的文件名。

将导出的 SQL 文件复制到目标数据库的服务器上。

在目标数据库服务器上,登录到 MySQL,并创建一个新的空数据库(如果还没有):

mysql -u 用户名 -p

CREATE DATABASE 目标数据库名;
# 选择目标数据库:

USE 目标数据库名;
# 导入表结构到目标数据库:

source 导出文件名.sql
# 其中,导出文件名.sql 是您之前导出的 SQL 文件的路径和文件名。

执行完以上步骤后,您的目标数据库将包含与源数据库相同的表结构。请注意,这个方法只导入表结构,不包括数据。如果您也想导入数据,请在导出时不使用 --no-data 参数,并在导入时使用 mysql 命令的 source 命令导入完整的 SQL 文件。

posted @ 2023-07-31 15:27  武平宁  阅读(137)  评论(0)    收藏  举报