2021-09-02 - MySQL 导出和导入SQL文件

1.应用场景

主要用于快速稳定地导出数据库进行备份,以及导入备份数据到数据库中.

2.学习/操作

1.文档阅读

MySQL 执行.sql文件 - 简书

2.整理输出

数据导入

方式有两种:

客户端方式 和 终端方式

提醒

要确认是否需要提前创建好数据库

2.1 客户端

如使用Navicat进行运行SQL文件即可

对于大文件,客户端方式就显得吃力,而且容易出错中断,或者数据不全。

2.2 终端方式

Linux或者Unix下

source执行.sql文件
进入mysql的控制台后,使用source命令执行

source [sql脚本文件的路径全名] 或 Mysql>. [sql脚本文件的路径全名]

示例:
source /path/to/s.sql 或者 ./path/to/s.sql

实例
1)进入mysql  --- bin ./mysql -uroot -p
2)create database 我们的数据库名
3)use database 我们的数据库名
4)source 地址 (不包含引号,因为拖拽文件到的,不包含引号)

截图

补充截图 // 换办公电脑重新执行 -- 大概执行五分钟

成功导入~

Windows下

使用cmd命令执行(windows下,unix或linux在的其控制台下)
[Mysql的bin目录] \mysql –u用户名 –p密码 –D数据库<[sql脚本文件路径全名]
示例:
D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql

2.3 优缺点或者说各自的应用场景

客户端方式更适合小文件的SQL,鼠标操作界面化操作,方便。

终端方式适合范围更广,同时不易出错,稳定,但是要求对命令行掌握~

数据导出备份

方式有二:

可视化软件: navicat // 省略

终端命令方式: mysqldump // 如下

 脚本如下:

#!/bin/bash

USERNAME='your_username'    # your MySQL username
PASSWORD='your_password'    # your MySQL password
BACKUP_DIR='/path/to/backup/folder'    # path to your backup folder, where backups will be stored
DATE=`date +%Y-%m-%d-%H-%M-%S`    # current date and time in format "Year-Month-Day-Hour-Minute-Second"

# create backup directory if it does not exist
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
fi;

# list of databases to back up
DATABASES=(
  db1
  db2
  db3
)

# loop through each database and back it up
for DB in ${DATABASES[@]}; do
  FILENAME="$BACKUP_DIR/$DB-$DATE.sql.gz"

  # backup the database
  mysqldump -u $USERNAME -p$PASSWORD $DB | gzip > $FILENAME

  # notify if backup was successful
  if [ $? -eq 0 ]; then
    echo "Backup of $DB completed successfully and saved to $FILENAME"
  else
    echo "Backup of $DB failed";
  fi
done

mysqldump简单用法

mysqldump -h hostname -P port_number -u username -p database_name > backup.sql

安装mysqldump

mysqldump 在 MySQL 中是默认安装的一个客户端工具,因此,只需要安装 MySQL,就可以使用 mysqldump 工具进行备份了。

但是也可以只安装mysql客户端工具。

 Ubuntu 上安装 MySQL 的步骤 // 如果不想安装mysql服务端 下面去掉mysql-server即可

sudo apt update

sudo apt install mysql-server mysql-client

macOS 安装mysqldump

brew install mysql-client

一旦安装了 MySQL 客户端,在以下目录中找到 mysqldump:

/usr/local/opt/mysql-client/bin/mysqldump

安装结果:

小优化:

将mysqldump起个别名,加入到环境变量中.

➜  ~ vim .zshrc

➜  ~ source .zshrc

➜  ~ mysqldump -V

mysqldump  Ver 8.0.32 for macos12.6 on x86_64 (Homebrew)

➜  ~      

# mysql

alias mysqldump="/usr/local/opt/mysql-client/bin/mysqldump"

使用Shell脚本执行如下:

这里的shell脚本

#!/bin/bash

HOST=127.0.0.1 # your MySQL host
USERNAME='root'	# your MySQL username
PASSWORD='root'	# your MySQL password
PORT=33060	# your MySQL port
BACKUP_DIR='/Users/mac/Documents/env/files/db/backups/localhost'	# path to your backup folder, where backups will be stored
# DATE=`date +%Y-%m-%d-%H-%M-%S`	# current date and time in format "Year-Month-Day-Hour-Minute-Second"
DATE=`date +%Y-%m-%d`

# echo $DATE
# exit [0]

# create backup directory if it does not exist
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
fi;

# list of databases to back up
DATABASES=(
  bingo_test_gp
  solitaire_test
  smash_test
)

# loop through each database and back it up
for DB in ${DATABASES[@]}; do
  FILENAME="$BACKUP_DIR/$DB-$DATE.sql.gz"

  # backup the database
  /usr/local/opt/mysql-client/bin/mysqldump -h$HOST -u$USERNAME -p$PASSWORD  -P$PORT $DB | gzip > $FILENAME

  # notify if backup was successful
  if [ $? -eq 0 ]; then
    echo "Backup of $DB completed successfully \nand saved to $FILENAME"
  else
    echo "Backup of $DB failed";
  fi
done

执行结果:

补充

shell脚本逐个导入上面的sql文件到数据库

 尚未实践,补充追加~

后续补充

...

3.问题/补充

TBD

4.参考

参考阅读列表

后续补充

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值