【问题标题】:Mysql stored procedures exportMysql存储过程导出
【发布时间】:2012-05-08 12:08:16
【问题描述】:

我已经使用 username@XX.XX.XX.XX 作为 DEFINER 值创建了所有存储过程。现在,由于我更改了我的位置,因此我无法查看或导出代码的 IP 地址。

我的代码在共享主机上,支持团队不想就此事提供帮助。

关于如何获取代码的任何想法?即使是完整的数据库导出也不包含存储过程代码。它只有插入到 ROUTINES 表中的数据

INSERT INTO `ROUTINES` (`SPECIFIC_NAME`, `ROUTINE_CATALOG`, `ROUTINE_SCHEMA`,
    `ROUTINE_NAME`, `ROUTINE_TYPE`, `DTD_IDENTIFIER`,
    `ROUTINE_BODY`, `ROUTINE_DEFINITION`, `EXTERNAL_NAME`, `EXTERNAL_LANGUAGE`,
    `PARAMETER_STYLE`, `IS_DETERMINISTIC`, `SQL_DATA_ACCESS`, `SQL_PATH`,
    `SECURITY_TYPE`, `CREATED`, `LAST_ALTERED`, `SQL_MODE`, `ROUTINE_COMMENT`,
    `DEFINER`, `CHARACTER_SET_CLIENT`, `COLLATION_CONNECTION`,
    `DATABASE_COLLATION`)
VALUES ('sp_sample_name', NULL, 'XXX',
    'sp_sample_name', 'PROCEDURE', NULL,
    'SQL', NULL, NULL, NULL,
    'SQL', 'NO', 'CONTAINS SQL', NULL,
    'DEFINER', '2012-03-26 01:01:14', '2012-03-26 01:01:14', 'STRICT_TRANS_TABLES',
    '', 'username@XX.XX.XX.XX', 'latin1', 'latin1_swedish_ci',
    'latin1_swedish_ci'),

谢谢

【问题讨论】:

    标签: mysql stored-procedures backup


    【解决方案1】:

    您可以拨打SHOW CREATE PROCEDURE

    【讨论】:

    • 如果我创建了一个新过程,它会这样做,但在这种情况下它不会返回代码。它返回如下:Procedure / sql_mode / Create Procedure / charset_set_client / collat​​ion_connection / Database Collat​​ion sp_sample_name STRICT_TRANS_TABLES (null) latin1 latin1_swedish_ci latin1_swedish_ci
    • 它为创建过程返回 (null)。不知道为什么。
    • Create Procedure 肯定 NULL?这不仅仅是因为它包含换行符,因此它的内容在您的客户端程序中是隐藏的?也许试试SHOW PROCEDURE CODE
    • 是的,我检查了 DBVisualizer 和 phpmyadmin,都返回 NULL。对于 SHOW PROCEDURE CODE,我得到 SHOW PROCEDURE CODE sp_sample_name 的语法错误。
    • 我已建议托管支持团队更新 DEFINER 值,如stackoverflow.com/questions/3206820/… 所示,但他们拒绝这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多