mysql导出某个库下所有对象, 包括存储过程. 到目标环境
使用如下命令导出指定库的信息, 然后导入到目标环境, 发现存储过程的注释没有了
导出:
mysqldump --single-transaction --master-data=2--set-gtid-purged=OFF--quick -h127.0.0.1-P3314-uroot -p123456 -R--databases db2023 > t20230904_db2023.sql
导入:
mysql -h127.0.0.1-P3314-uroot -p123456 -Ddb2023 < t20230904_db2023.sql
1. 确认源环境存储过程是否有注释
show create procedure test_proc;
如果源环境没得的话, 那肯定是导不出来的...
2. 查看导出文件是否有注释
都有的话, 那就是导入的问题了
mysql连接的时候有个参数是发送注释给server
-c, --comments Preserve comments. Send comments to the server. The
default is --skip-comments (discard comments), enable
with --comments.
但默认是不发送注释的(节约带宽). 也就是导入的时候注释就被忽略掉了....
导入的时候, 连接数据库时加上 -c
即可
mysql -c -h127.0.0.1 -P3314 -uroot -p123456 -Ddb2023 < t20230904_db2023.sql
但现在又重新导入数据太麻烦了. 所以可以只导出存储过程
-t 不要表结构
-d 不要数据
-R 要存储过程
mysqldump -d -t --single-transaction --master-data=2 --set-gtid-purged=OFF --quick -h127.0.0.1 -P3314 -uroot -p123456 -R --databases db2023 > t20230904_db2023.sql
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。