你可以用相应的XML解析类,把相应的XML变成字符串,然后再存到数据库
2. mysql中是不是event定义的事件只能有一个
事件调度器是MySQL5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为时间触发器,类似于linux系统下面的任务调度器crontab,或者类似与window下面的计划任务。
值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
3. 多实例的mysql 怎么自动开启event 现在event_scheler 是DISABLED
我的mysql装在linux上,今天也出现了这种问题,报的错为:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
linux下需要找到my.cnf文件,看配置中是否有skip-grant-tables 这一行,需要注释掉。然后进入命令行输入:set global event_scheler =on;或者set global event_scheler =1;都可以。
Windows下的话应该是需要找到my.ini文件,之后的操作和上面一样。
至于skip-grant-tables的意思,网络吧。里面有详细的讲解。
skip-grant-tables作用是跳过验证,有了这个其实你可以把之前的忘记的密码修改掉。 步骤
1、在命令窗登录mysql。切换库为mysql库。
2、update user set password=PASSWORD('newpswd')WHERE user='root';
3、flush privileges;
4、退出命令窗重启mysql服务,在使用修改时候的密码登录一下看看
如果成功登录,应该就可以设置event事件任务了
4. 请问图中的数据库events 是每天都执行的吗
-- 查看存储过程状态
show procere status;
-- 创建名为resetMsgNum()存储过程
-- 存储过程执行 update sc_user SET msg_num = 0;
create procere resetMsgNum()
BEGIN
update sc_user SET msg_num = 0;
end;
-- 删除事件eventResetMsgNum
drop event if EXISTS eventResetMsgNum;
-- 查看事件
SHOW EVENTS;
-- 创建mysql的定时器event:
-- create event if not exists eventResetMsgNum
-- on schele
-- every 20 second
-- on completion PRESERVE
-- do call resetMsgNum();
-- 创建定时器(event) eventResetMsgNum
-- 定时器开始时间 '2019-6-12 23:06:00'
-- 执行频率 1天/次
-- 执行时间 resetMsgNum();
create event eventResetMsgNum
on schele
EVERY 1 day
STARTS '2019-6-12 23:06:00'
do call resetMsgNum();
-- mysql想利用定时器必须把mysql的定时器给开启了:
SET GLOBAL event_scheler = 1; -- 启动定时器
SET GLOBAL event_scheler = 0; -- 停止定时器
-- 还要开启事件:
ALTER EVENT eventResetMsgNum ON COMPLETION PRESERVE ENABLE; -- 开启事件
ALTER EVENT eventResetMsgNum ON COMPLETION PRESERVE DISABLE; -- 关闭事件
SHOW VARIABLES LIKE '%sche%'; -- 查看定时器状态
5. oracle 检查数据库设置哪些event
如何查询会话 event
很多时候,我们在数据库中设置了event,如何确认设置的event生效或者如何确认你的库中设置了什么event.下面的文章测试了在11g中比较方便的方法数据库版本
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>select*fromv$version;
BANNER
--------------------------------------------------------------------------------OracleDatabase11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProctionPL/SQL Release 11.2.0.3.0 - Proction
CORE 11.2.0.3.0 Proction
TNSforSolaris: Version 11.2.0.3.0 - ProctionNLSRTL Version 11.2.0.3.0 - Proction
设置测试event
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>alter session set events '10510 trace name context forever,level 1';Session altered.
SQL>alter session set events '10046 trace name context forever,level 4';Session altered.
SQL>alter system set events '60025 trace name context forever';System altered.
SQL>alter system set events '10513 trace name context forever,level 2';System altered.
测试spfile参数中是否有event
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>create pfile='/tmp/pfile'fromspfile;
File created.
solaris*orcl-/home/oracle$ grep -i event /tmp/pfile--无记录
SQL> show parameter event;
NAME TYPE VALUE------------------------------------ ----------- -----------------event stringxml_db_events string enable证明设置event不会在spfile中记录
查询会话event
[sql] view plain 在CODE上查看代码片派生到我的代码片--dbms_system实现
SQL> set serveroutput on size 1000000
SQL> declare
2 event_level number;
3 begin
4 for i in 1..100000 loop
5 sys.dbms_system.read_ev(i,event_level);6 if (event_level > 0) then
7 dbms_output.put_line('Event '||to_char(i)||' set at level '||8 to_char(event_level));
9 end if;
10 end loop;
11 end;
12 /
Event 10510 set at level 1
Event 10513 set at level 2
Event 60025 set at level 1
PL/SQL procere successfully completed.
--oradebug实现
SQL> oradebug SETMYPID
Statement processed.
SQL> oradebug eventmp session
10510 trace name context forever,level 1
10513 trace name context forever,level 2
60025 trace name context forever
sql_trace level=4
测试证明使用dbms_system可以捕获到event,oradebug可以捕获到本身会话,还可以通过setospid/setorapid来跟踪其他会话的event设置情况.event 10046对应的本质是sql_trace所以使用dbms_system不能捕获到10046经过学习和测试,总结可以使用oradebug来实现:
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL> oradebug SETMYPID
Statement processed.
SQL> oradebug eventmp session
或
SQL> oradebug eventmp system
就可以查看系统级或会话级的事件设置了
6. 如何编辑mysql中events的execute at如何使用
1. 通过我们调用的方法,如本例中的 selectAuthUserByName ,接口名来组合成语句。本例中是 com.mybatis..AuthUserDao.selectAuthUserByName 。其实使用过sqlSession的selectOne(String statmet)之类的语句都知道。这个可以唯一定位到我们在sql映射文件中配置的sql语句
2. 通过返回值类型,定位到的语句的类型。确定最后应该执行的方法。是执行查询、删除、添加、修改等等。
7. sql2005数据库运行状态与eventservice中断怎么解决
解决方法:
【Microsoft SQL Server 2005】--【配置工具】--【SQL Server Configration Manager】
打开配置管理器窗口,左侧树形中找到“SQL Server 2005 网络配置”--“MSSQLSERVER的协议”,右侧的VIA协议为启用,改成禁用即可。
另外,管理员密码修改也会造成sqlserver服务无法启动。解决方法如下:
打开 \Microsoft SQL Server 2005\配置工具\下的SQL Server Configuration Manager,打开SQL Server属性,如下图所示:
将本帐户的密码修改为您更改之后的管理员密码,“确定”即可。这时SQL Server服务应该就能正常启动了。
最后需要补充说明的是:我的机器在安装时没有使用默认实例,而是用的“EHR”这个实例名,因此,截图可能会与您看到的不太一样。没有关系,道理都是一样的。
2:SQL Server 2005 出现到主机 的 TCP/IP 连接失败
在 SQL Server 2005 里面,如果出现到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect!
估计是因为sqlserver2005默认情况下是禁用了TCP/IP连接。
您可以在命令行输入:telnet localhost 1433进行检查,这时会报错:正在连接到localhost...不能打开到主机的连接,在端口 1433: 连接失败
启动tcp/ip连接的方法:
打开
\Microsoft SQL Server 2005\配置工具\目录下的SQL Server Configuration
Manager,选择mssqlserver协议,
然后右边窗口有个tcp/ip协议,然后启动它,把sqlserver服务停了,然后在启动。问题就解决了!
这时在命令行输入:telnet localhost 1433就不会再报错了,窗口显示为一片黑,即为正常。
SQLServer2005安装提示服务无法启动
安装时出现了如下错误:SQL Server 2005 安装错误码29503,接下来讲解一下,错误原因及解决方法,感兴趣的你可以参考下,或许对你有所帮助