今天测试组的一个好朋友,让我帮她拷贝几个mysql的存储过程,从10.200.2.6上,拷贝到10.200.2.2上,原来的数据库,数据都已经存在,只需把存储过程拷贝过去,我先
查看了一下原来机子上的存储过程:
show procedure status;
mysql> show procedure status;
+----------+-----------------------------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+----------+-----------------------------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| imtonglu | data_statistics | PROCEDURE | dev@% | 2013-04-26 17:43:59 | 2013-04-26 17:43:59 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
| imtonglu | data_statistics_date | PROCEDURE | dev@% | 2013-04-26 17:45:31 | 2013-04-26 17:45:31 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
| imtonglu | data_statistics_month | PROCEDURE | dev@% | 2013-04-26 17:46:21 | 2013-04-26 17:46:21 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
| imtonglu | data_statistics_random_date | PROCEDURE | dev@% | 2013-04-26 17:47:35 | 2013-04-26 17:47:35 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
| imtonglu | data_statistics_year_month | PROCEDURE | dev@% | 2013-04-26 17:48:39 | 2013-04-26 17:48:39 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
| imtonglu | data_statistics_year_week | PROCEDURE | dev@% | 2013-04-26 17:49:31 | 2013-04-26 17:49:31 | DEFINER | | utf8 | utf8_general_ci | utf8_general_ci |
+----------+-----------------------------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
6 rows in set (0.01 sec)
然后具体用法为:用 mysqldump -uroot -p -hlocalhost -P3306 -n -d -t -R DBName > procedure_name.sql 即可导出存储过程,然后倒入到要导入的数据库即可。
参数说明:
-n: --no-create-db
-d: --no-data
-t: --no-create-info
-R: --routines Dump stored routines (functions and procedures)
Mysqldump是客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建活装载表的SQL语句:
主要参数介绍:
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(给所有的表加读锁)