Mysql导出导入相关操作记录

一、使用source

source sql脚本文件路径

二、使用mysqldump

命令行下具体用法如下:  mysqldump -u用户名 -p密码 -d 数据库名 表名 脚本名;

1、导出数据库為dbname的表结构(其中用户名為root,密码為dbpasswd,生成的脚本名為db.sql)     mysqldump -uroot -pdbpasswd -d dbname >db.sql;

2、导出数据库為dbname某张表(test)结构     mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

3、导出数据库為dbname所有表结构及表数据(不加-d)     mysqldump -uroot -pdbpasswd  dbname >db.sql;

4、导出数据库為dbname某张表(test)结构及表数据(不加-d)     mysqldump -uroot -pdbpasswd dbname test>db.sql;

 

注意事项:

1、导出乱码问题,导出之前指定编码格式用 --default-character-set=utf8

1,数据库备份命令 mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql

mysqldump -uroot -p --default-character-set=utf8 dbname > /root/newsdata.sql

2,导入数据库 mysql -uroot -p --default-character-set=gbk use dbname source /root/newsdata.sql

mysql -uroot -p --default-character-set=utf8 use dbname source /root/newsdata.sql 若不能解决问题看下面: mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8,如下: |character_set_client      | utf8                                  | | character_set_connection | utf8                                  | | character_set_database   | utf8                                  | | character_set_filesystem | binary                                | | character_set_results    | utf8                                  | | character_set_server     | latin1                                | | character_set_system     | utf8          

注意该配置| character_set_server     | latin1 无法设置成UTF8 交互时候仍然会出现乱码。

只有当修改my.ini中设置UTF8,才会全部修改成UTF8

------------------------- mysql设置编码命令

SET character_set_client = utf8; SET character_set_connection = utf8; SET character_set_database = utf8; SET character_set_results = utf8;/*这里要注意很有用*/ SET character_set_server = utf8;

SET collation_connection = utf8_bin; SET collation_database = utf8_bin; SET collation_server = utf8_bin;

my.ini中配置默认编码 default-character-set=utf8

2、导出大数据库问题,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。为避免这个问题,需要加上--opt或--quick选项,这样将读一行写一行

posted @ 2013-10-22 09:40  toeasy  阅读(521)  评论(0编辑  收藏  举报