启动dbforge studio for mysql的调试功能


1、安装dbforge studio for mysql
2、使用dbforge studio for mysql,并以root身份连接数据库后编写一个存储过程
3、右击存储过程选择Debug,然后选择Step Into
4、打断点就可以调试了
5、调试完毕的存储过程,在其它工具中添加了很多调试用的语句信息,所以在调试完成后再次右击存储过程,然后Debug,并选择Compile或直接按Ctrl+F7
6、这时候可以看到数据库多了一个cr_debug库
7、给对应需要调试的数据库的用户授予cr_debug库的所有权限和mysql库的select权限,当这种处理完毕后就可以正常使用dbforge studio for mysql的调试功能了

=================================================================
参考文章:
昨天同事让帮忙在mysql的数据库里创建一个procedure 并给他用的账号reader debug 存储过程的权限。
通过查找相应的资料,并结合mysql.user里面的信息,发现mysql的procedure的权限功能还是挺弱的,
看到有create routine ,alter routine ,execute 这三个权限,没有什么debug的权限。
于是我就先把这三个权限给了reader这个用户,但是结果是可想而知的,创建的procedure是不能够debug的。
后来查找了大量的资料,并通过自己的摸索,成功的解决了这个问题。在百度里相关的资料比较少,所以记录下来希望能帮助到遇到此类问题的朋友们。
1. 同事用的toad for mysql 7.1 这个工具是带有debug的功能的,但是在debug时提示如下
mysql database error: access denied for user reader to database questdebug;
刚开始我不明白这是什么意思,因为我的mysql里没有questdebug这个库,于是我百度,但是没有结果,于是我换了一个工具:dbforge studio for mysql(一下简称dbforge) 版本我忘记了 ,我是从官网下载的最新版本然后安装做的测试。
2.用dbforge 这个工具 也是不能debug ,但是这个工具报的错误是和toad不一样的。
大致的错误信息应该是 access denied for user reader to database cr_debug;
我还是不清楚是怎么个情况,于是我用自己管理员的账号做个个测试,发现是可以debug的。两个用户的权限是不一样的。
这个时候我发现mysql里多了一个cr_debug的库,于是我把cr_debug库的all privileges 给了reader这个用户,然后用dbforge compile for debugging ,居然是成功了。 这时候我感觉 可能是连接工具在对mysql debug时会创建一个库,记录debug的信息。所以需要用户对这个库有权限。
3. 能够编译debug只是个开始,还需要逐行debug ,这个对procedure 编写调试用处非常大。
但是在做step into(逐行调试)的时候 又有了新的错误:
can't start debug.Probably,you do not have enough privileges to get object metadata.
这个错误 我从百度上找不到答案,针对object metadata 我做了些分析。在mysql中 information_schema 存放的是元数据。里面放的表(视图)
记录着mysql的相关信息。 但是这个库默认对用户是有select的权限的。难道是缺其它的权限,于是我想把all privileges的权限给reader ,但是发现报错,提示没有权限。 这个该怎么解决呢。于是查了些资料,对比了下我自己的用户和reader用户,发现可能问题出现在mysql的一个默认的库mysql库,这个库是mysql的核心数据库。这个库记录着mysql自己的控制和管理信息,也算是元数据吧。于是我把 select on mysql.* 的权限给了reader用户。这次大功告成。
4.接下来又遇到一个小问题,就是binlog_format=statement  然后debug的时候有数据需要row-based logging  否则不能写入binlog。这个问题就比较好解决了,
set global binlog_format=mixed 这样就解决了
5 总结:mysql的对debug的控制,是根据某些特定的库来实现权限的构成。使用的工具不同也许遇到的问题也会不同。 

DBForge Studio for MySQL是一款强大的MySQL数据库管理工具,除了可以对数据库进行管理和开发外,还可以帮助我们调试存储过程。 在DBForge Studio for MySQL中,我们可以通过以下步骤调试存储过程: 首先,我们需要连接到我们的MySQL数据库,并打开我们想要调试的存储过程所在的数据库以及相应的Schema。 接下来,在数据库导航器中找到存储过程所在的文件夹,并双击打开我们要调试的存储过程。 在存储过程编辑器中,我们可以看到存储过程的代码,并且在代码的左边会显示出断点符号,我们可以在要调试的代码行上单击左键来设置断点。 设置完断点后,我们可以点击工具栏上的“开始调试”按钮,或者使用快捷键F7来启动调试启动调试后,我们可以使用调试工具栏上的各种按钮来控制调试过程,例如:单步执行,逐行执行,跳过当前行等等。 在调试过程中,我们可以观察变量的值,查看存储过程的执行情况,以及在调试工具栏上查看调试记录等。 当调试到断点处时,我们可以逐行执行代码并查看执行结果,进一步查找问题所在。 调试完成后,我们可以点击工具栏上的“停止调试”按钮,或者使用快捷键Shift+F7来停止调试。 总之,DBForge Studio for MySQL为我们提供了强大的存储过程调试功能,帮助我们快速定位和解决存储过程中的问题。无论是单步调试还是查看变量值,都能方便地进行。因此,DBForge Studio for MySQL是开发和管理MySQL数据库的优秀工具之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值