您的位置:首页 > 数据库 > MySQL

mysql 利用mysqldump 导入导出表结构、数据、存储过程及函数

2014-01-20 10:21 816 查看
1、mysql导出整个数据库

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql  

 

2、导入命令:

 

mysql -h localhost -u root -p123456 hjdata < d:\backupfile.sql


3、mysql导出数据库一个表

mysqldump -hhostname -uusername -ppassword  -d --add-drop-table databasename>d:hqgrstructure.sql


 

4、导出mysql里面的函数或者存储过程

mysqldump -hhostname -uusername -ppassword -n -t -d -R databasename > backupflie.sql


5、在导入时可能会出现新的问题:

ErrorCode:1418

This function has none of DETERMINISTIC, NOSQL, or READS SQL DATA inits declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

解决方法是,在/etc/my.cnf中找到[mysqld],在它下面添加这样一行:

 

6、mysqldump语法:

mysqldump -uroot -p -hlocalhost -P3306 -n -d -t -R DBName > procedure_name.sql

 

7、参数说明:

1.连接选项
-u,--user=name
-p,--password=name
-h,--host=name
-P,--port=#
2.输出内容选项
--add-drop-database
--add-drop-table
-n;--no-create-db
-d;--no-data
-t;--no-create-info
3.输出格式选项
--compact
-c --complete-insert
-T(指定数据表中的数据备份为单纯的数据文件和建表SQL两个文件)
注意:xx.sql建表文件是以linux的root用户创建,而xx.txt文件则是一linux的mysql用户创建,因此这两个文件的存放路径一定要保证mysql用户有读写创建文件的权限。
--fields-terminated-by=name(域分隔符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域引用可选字符)
--fields-escaped-by=name(转义字符)
4.字符集选项
--default--character-set=xx
5.其他选项
-F --flush-logs(备份前刷新日志)
-l --lock-tables(给所有的表加读锁)


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: