写点什么

mysql 进阶 (十三) 命令行导出导入数据库

  • 2022 年 7 月 20 日
  • 本文字数:1511 字

    阅读完需:约 5 分钟

mysql进阶(十三)命令行导出导入数据库

一、命令行导出数据库

  1. 进入 MySQL 目录下的 bin 文件夹:cd MySQL 中到 bin 文件夹的目录

如我输入的命令行:

cd D:\Program Files\MySQL\MySQL Server 5.5\bin

(或者直接将 windows 的环境变量 path 中添加该目录)

  1. 导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 

如我输入的命令行:

mysqldump -u lmapp -p lmapp -P 3308 > lmapp.sql   (输入后会让你输入进入MySQL的密码)
复制代码

如果导出单张表的话在数据库名后面输入表名即可

mysql 导出数据库一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u lmapp -p lmapp users> test_users.sql (结尾没有分号)
复制代码

3、会看到文件 news.sql 自动生成到 bin 文件下  

 


导出时,遇到上面的问题。



解决措施:加个参数-P 3308(mysql 服务端口)即可解决问题。

二、命令行导入数据库

  1. 将要导入的.sql 文件移至 bin 文件下,这样的路径比较方便

  2. 同上面导出的第 1 步

  3. 进入 MySQL:mysql -u 用户名 -p

如我输入的命令行:mysql -u root -p   (输入同样后会让你输入 MySQL 的密码)

  1. 在 MySQL-Front 中新建你要建的数据库,这时是空数据库,如新建一个名为 news 的目标数据库

  2. 输入:mysql>use 目标数据库名

如我输入的命令行:mysql>use news;

  1. 导入文件:mysql>source 导入的文件名; 

如我输入的命令行:mysql>source news.sql; 

 


注:由于导入数据库的规模、数据结构不同,导入所需时间会有较大差异。我导入的数据库有 123M,花费将近 5 个小时。期间以为机器宕掉了,仔细观察命令行界面发现,导入是在正常进行的。导入成功后的界面如下:

      

注:导入单张数据表时,使用类似 use lmapp lm_area 、source lm_area.sql 的 sql 语句。原数据表可存在,导入后的数据表会覆盖同名已存在的数据表。


MySQL 备份和还原,都是利用 mysqldump、mysql 和 source 命令来完成的。 

三、Win32 下 MySQL 的备份与还原 

3.1 备份 

开始菜单 | 运行 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”命令进入 bin 文件夹 | 利用“mysqldump  -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。 

3.2 还原 

进入 MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。 

四、Linux 下 MySQL 的备份与还原 

4.1 备份 

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) 
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql
复制代码

输入密码即可。

4.2 还原

法一:

[root@localhost ~]# mysql -u root -p 回车,输入密码
复制代码

进入 MySQL 的控制台"mysql>",同 1.2 还原。

法二:

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) 
[root@localhost mysql]# mysql -u root -p voice<voice.sql
复制代码

输入密码即可。

五、延伸阅读 不靠谱的 FLOAT 数据类型

在设计数据表时,突然发现原来 FLOAT 原来是很不靠谱的,建议大家换成DOUBLE类型,


原因分析:在 mysql 手册中讲到,在MySQL中的所有计算都是使用双精度完成的,使用float(单精度)会有误差,出现意想不到的结果。


在查询数据时,MySQL使用 64 位十进制数值的精度执行DECIMAL操作,float(5.54) = 5.54 如果出现精度丢失,这个是不等的。这样,本来我们应该能查到的数据就会莫名其妙的消失。

发布于: 刚刚阅读数: 3
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
mysql进阶(十三)命令行导出导入数据库_MySQL 数据库_No Silver Bullet_InfoQ写作社区