sqlyog中创建触发器

利用root用户远程登录创建mysql触发器问题记录

远程数据库服务器地址192.168.1.99,启动sqlyog时,做如下设置

sqlyog中创建触发器_第1张图片

设置好了以后,点击image 进行连接测试,如能连接成功,则出现如下提示信息

sqlyog中创建触发器_第2张图片

然后点击image 按钮,进入如下界面

sqlyog中创建触发器_第3张图片

选择一个数据库进行操作,如上图以数据库tt为例进行操作,为测试方便,建表test1和test2(具体过程省略)

sqlyog中创建触发器_第4张图片

表建好以后我们就可以开始创建触发器了,右键Triggers,选择Create Trigger…

sqlyog中创建触发器_第5张图片

弹出一个对话框,让我们输入触发器的名称,输入完以后点击Create按钮

sqlyog中创建触发器_第6张图片

创建以后出现如下代码

sqlyog中创建触发器_第7张图片

修改代码后如下(注意第6行,更改表名称的时候要把<>去掉,不然会报错),

具体触发器实现什么功能就不说了,一看代码就明白

sqlyog中创建触发器_第8张图片

代码修改完以后,点击Execute All Queries按钮,如下图

sqlyog中创建触发器_第9张图片

执行过后是什么结果呢,并没有执行成功,而是出现了如下的错误提示信息

sqlyog中创建触发器_第10张图片

提示user  'root'@'LUISYANG' 没有创建触发器的权限

既然没有权限,那我们给它分配个权限就可以了,首先用select current_user;命令查看当前登录用户

sqlyog中创建触发器_第11张图片

显示用户为root@%

然后用show grants;命令显示当前用户所具有的权限,仔细查阅后确实没有创建触发器的权限,

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*DC450F900E733138B088F8D9CAA3703758366B04' WITH GRANT OPTION

 

sqlyog中创建触发器_第12张图片 

找到原因,剩下的就是给用户分配权限的问题了,在服务器上使用如下命令给用户'root’@’%’分配权限

mysql>grant all privileges on *.* to ‘root’@’%’ identified by ‘登录密码′;

mysql>flush privileges;

执行完命令以后,重启一下mysql服务,然后再到运程客户端执行show grants;命令,显示如下信息

sqlyog中创建触发器_第13张图片

显然该用户已经具有了所有权限,这时再来执行上面创建触发器的语句,提示执行成功

sqlyog中创建触发器_第14张图片

我们点击Triggers,已经能看到我们刚才所建的触发器了

sqlyog中创建触发器_第15张图片

下面我们来测试刚才创建的触发器,在表test1中执行添加,并查询数据的操作

sqlyog中创建触发器_第16张图片

然后执行SELECT * FROM test2;操作,出现如下结果,说明我们的触发器已经可以使用了

sqlyog中创建触发器_第17张图片

sqlyog创建触发器的介绍到此结束。

你可能感兴趣的:(sqlyog中创建触发器)