mysql导出存储过程.doc
MYSQL导出存储过程1、导出数据库表信息导出所有库表信息包括DDL和DATA信息;如图二、导出存储过程等信息如图其中,D表示NOCREATEDB,N表示NODATA,T表示NOCREATEINFO,R表示导出FUNCTION和PROCEDURE。所以上述代码表示仅仅导出函数和存储过程,不导出表结构和数据。但是,这样导出的内容里,包含了TRIGGER,再往MYSQL中导入时就会出问题,错误如下ERROR123542000ATLINETHISVERSIONOFMYSQLDOESN TYETSUPPORT‘MULTIPLETRIGGERSWITHTHESAMEACTIONTIMEANDEVENTFORONETABLE’所以在导出时需要把TRIGGER关闭。代码为这样在导入时,会出现新的问题ERRORCODE1418THISFUNCTIONHASNONEOFDETERMINISTIC,NOSQL,ORREADSSQLDATAINITSDECLARATIONANDBINARYLOGGINGISENABLEDYOUMIGHTWANTTOUSETHELESSSAFELOG_BIN_TRUST_FUNCTION_CREATORSVARIABLE解决方法是,在/ETC/MYCNF中找到MYSQLD,在它下面添加这样一行LOGBINTRUSTFUNCTIONCREATORS1表结构等已经在目标数据库中存在,不想拷贝数据库过去,MYSQL的存储过程导出和导入,MYSQLDUMP工具可以实现,具体用法为[ROOTLOCALHOSTBINMYSQLDUMPUROOTPHLOCALHOSTP3306NDTRDBNAMEPROCEDURE_NAMESQLMYSQLDUMP是客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建活装载表的SQL语句主要参数介绍1连接选项U,USERNAMEP,PASSWORDNAMEH,HOSTNAMEP,PORT2输出内容选项ADDDROPDATABASEADDDROPTABLENNOCREATEDBDNODATATNOCREATEINFO3输出格式选项COMPACTCCOMPLETEINSERTT(指定数据表中的数据备份为单纯的数据文件和建表SQL两个文件)注意XXSQL建表文件是以LINUX的ROOT用户创建,而XXTXT文件则是一LINUX的MYSQL用户创建,因此这两个文件的存放路径一定要保证MYSQL用户有读写创建文件的权限。FIELDSTERMINATEDBYNAME(域分隔符)FIELDSENCLOSEDBYNAME(域引用符)FIELDSOPTIONALLYENCLOSEDBYNAME(域引用可选字符)FIELDSESCAPEDBYNAME转义字符4字符集选项DEFAULTCHARACTERSETXX5其他选项FLOGS(备份前刷新日志)LLOCKTABLES给所有的表加读锁