一、从Linux中,用命令导出数据库为.sql文件:
1、先进入到mysql的运行目录下
(1)可查询数据库位置:find / -name mysql -print
(2)再进到bin目录下:cd /usr/local/mysql/bin
2.1、导出数据和表结构:
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
mysqldump -uroot -p phantyun > phantyun.sql (文件默认生成在bin目录下)
敲回车后会提示输入密码即可
2.2、只导出表结构
mysqldump -u用户名 -p -d 数据库名 > 数据库名.sql
mysqldump -uroot -p -d phantyun > phantyun.sql
3、有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢?
mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式和SQL查询命令中中的where基本上相同,有了它,我们就可以从数据库中导出你需要的那部分数据了。
命令格式如下:
mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径
例子:
从meteo数据库的sdata表中导出sensorid=11 且 fieldid=0的数据到 /home/xyx/Temp.sql 这个文件中
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql
另外你还可以直接导出 文本文件*.txt
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.txt
1.导出结构
mysqldump -d 数据库名 -uroot -p > xxx.sql
2.导出数据
mysqldump -t 数据库名 -uroot -p > xxx.sql
3.导出数据和表结构
mysqldump 数据库名 -uroot -p > xxx.sql
4.导出特定表的数据和结构
mysqldump -uroot -p 数据库名 表名 > xxx.sql
4.导出特定表的结构
mysqldump -d -uroot -p 数据库名 表名 > xxx.sql
导入数据库
1)登录
mysql -uroot -p
(2)创建数据库,最好跟你要导入的数据库重名
create database xx;
(3)切换到你创建的数据库下
use 数据库名称;
(4)导入数据库
source /home/newdb.sql;
注:home/newdb.sql是路径+数据库sql文件
2、第二种数据库导入方式
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
遇到的问题及解决方案
问题一:如图:将/etc/my.cnf的client的character-set-server=utf-8 注释掉;重启mysql