-
ThinkPHP3.2.3关闭调试模式及做些修改
2016-05-04 09:37:471、首先在入口文件中关闭调试模式 // 开启调试模式 建议开发阶段开启True 部署阶段注释或者设为false define('APP_DEBUG',false); 2、修改/ThinkPHP/Tpl/think_exception.tpl 修改为自己想要的报错页面即可1、首先在入口文件中关闭调试模式
// 开启调试模式 建议开发阶段开启True 部署阶段注释或者设为false define('APP_DEBUG',false);
2、修改 Conf/config.php
// 异常页面的模板文件 'TMPL_EXCEPTION_FILE' => THINK_PATH.'Tpl/show_error.tpl',
3、修改相应的模板文件
改为自己想要的报错页面即可
PS:如果遇到错误,请查看日志
-
想对插件做些修改,怎么把插件源码和es进行集成测试呢
2020-12-28 12:38:47<div><p>该提问来源于开源项目:NLPchina/elasticsearch-analysis-ansj</p></div> -
我对代码做了些修改
2020-12-05 19:15:28<div><h2>89ip.go err处理有问题,有时会导致空指针。 <pre><code> if resp.StatusCode != 200 { // clog.Warn(err.Error()) return } </code></pre> <h2>xicidl.go 请求有问题,... -
Oracle 11g 修改密码前应该做些什么?
2015-07-28 14:45:45该方法由于对基表进行修改,不建议轻易使用,由其是生产环境,最好的方法还是要在文档中记录用户密码。在忘记时可以通过文档查找。 来自 “ ITPUB博客 ” ,链接:...一、环境: linux redhat 5.8oracle 11.2.0.4.0二、问题描述:有个用户密码忘记了,又怕改了该用户密码会影响应用,因为改密码很容易,如果影响的话该何所做好回退方案呢。以下就是我的回退方案。三、实验证明:1. 建立测试用户并赋权限[oracle@tora01 ~]$ sqlplus / as sysddbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Jul 28 11:48:33 2015Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user sam identified by sam;User created.SQL> grant connect to sam;Grant succeeded.2. 记录用户密码与SPARE4字段的值,通过惜分飞的博客得知SPARE4字段是密码大小写敏感控制《http://www.xifenfei.com/4396.html》。此处我的实验是要求记录此值,为了后面恢复密码使用。SQL> set lines 200SQL> col passwrod for a20SQL> col spare4 for a70SQL> select password,spare4 from user$ where name='SAM';PASSWORD SPARE4-------------------- ----------------------------------------------------------------------4B95138CB6A4DB94 S:DD85639AB2542CB45E1138F8570E837C95555A337D60752453848A22F1E93. 使用命令方式修改密码SQL> alter user sam identified by Oracle;User altered.4. 再次检查基表情况SQL> select password,spare4 from user$ where name='SAM';PASSWORD SPARE4-------------------- ----------------------------------------------------------------------25CA928B1DB71583 S:CF85AA4FA2DA01D1FC0B0C7C540C9A49A966A638302DC007AF1B2481CD5B5. 测试用户用新密码登录SQL> conn sam/Oracle;Connected.6. 修改基表,使得变更回改前密码SQL> conn / as sysdbaConnected.SQL> update user$ set password='4B95138CB6A4DB94' where name='SAM';1 row updated.SQL> update user$ set spare4='S:DD85639AB2542CB45E1138F8570E837C95555A337D60752453848A22F1E9' where name='SAM';1 row updated.SQL> commit;Commit complete.7. 清理shared_poolSQL> alter system flush shared_pool;System altered.8. 测试用原来的密码连接,成功SQL> conn sam/sam;Connected.四、总结该方法由于对基表进行修改,不建议轻易使用,由其是生产环境,最好的方法还是要在文档中记录用户密码。在忘记时可以通过文档查找。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26148431/viewspace-1754165/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26148431/viewspace-1754165/
-
SQL Server 的事务和锁(举例)——在其他博客上做些笔误修改
2015-11-05 00:29:28数据库引擎会使用共享锁防止其他事务在当前事务执行读取操作期间修改行 。 共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行 。 【测试三:不可...SQL Server 的事务和锁(举例)
原料:创建Test表
CREATE TABLE [dbo].[Test](
[id] [int] NULL,
[name] [nchar](10) COLLATEChinese_PRC_CI_AS NULL,
[info] [nchar](10) COLLATEChinese_PRC_CI_AS NULL
) ON [PRIMARY]
插入一条记录
INSERT INTO Test VALUES(2,'kk',null)
查询显示有此记录
SELECT * FROM Test Where name='kk'
id name info
1 kk NULL
【测试一:丢失更新】
begin tran
select * from dbo.Test(nolock) where name = 'kk'
waitfor delay '00:00:05'
update T set info = 'A更改' from Test T(nolock) where name = 'kk'
commit tran
--事务2
begin tran
select *from dbo.Test(nolock) where name = 'kk'
waitfor delay '00:00:05'
update T setinfo = 'B更改' from Test T(nolock) where name = 'kk'
commit tran --事务1
begintran
select * from dbo.Test(nolock) where name ='kk'
waitfor delay '00:00:05'
update T set info = 'A更改' from Test T(nolock)where name = 'kk'
committran
--事务2
begintran
select * from dbo.Test(nolock) where name ='kk'
waitfor delay '00:00:05'
update T set info = 'B更改' from Test T(nolock)where name = 'kk'
committran
事务1和事务2的运行结果:
id name info
1 kk NULL
事务结束最后结果:
SELECT * FROM Test Wherename='kk'
id name info
1 kk B更改
说明:【事务1】更改了数据,但是没有被读到。最终【事务2】的更改覆盖了【事务1】的更改值
解决:允许对事务操作加锁,即取消(nolock),nolock级别最低。
当前使用:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
(READ UNCOMMITTED:即未提交的数据只能读取,不能更改)
【测试二:脏读】
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
begin tran
update T set info = 'A更改' from Test T where name = 'kk'
waitfor delay '00:00:05'
rollback tran
--事务2
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
begin tran
select *from dbo.Test where name = 'kk'
commit tran --事务1
begintran
select * from dbo.Test(nolock) where name ='kk'
waitfor delay '00:00:05'
update T set info = 'A更改' from Test T(nolock)where name = 'kk'
committran
--事务2
begintran
select * from dbo.Test(nolock) where name ='kk'
waitfor delay '00:00:05'
update T set info = 'B更改' from Test T(nolock)where name = 'kk'
committran
--事务1
SETTRANSACTION ISOLATION LEVEL READ UNCOMMITTED
begintran
update T set info = 'A更改' from Test T where name= 'kk'
waitfor delay '00:00:05'
rollbacktran --回滚
--事务2
SETTRANSACTION ISOLATION LEVEL READ UNCOMMITTED
begintran
select * from dbo.Test where name = 'kk'
committran
事务2的运行结果:
id name info
1 kk A更改
事务结束最后结果:
SELECT * FROM Test Wherename='kk'
id name info
1 kk NULL
说明:【事务1】更改了数据,【事务2】读取了表中更改的值,【事务1】回滚。最终的表是没有被更改的。
解决一:提高隔离级别
SET TRANSACTION ISOLATIONLEVEL READCOMMITTED
ALTER DATABASEDBNameSETREAD_COMMITTED_SNAPSHOTOFF(默认OFF)
此时【事务1】等待事务【事务2】完成后才读取表中的值。
(READ COMMITTED:更改的数据只能是提交后才能读取)
解决二:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
ALTER DATABASEDBNameSETREAD_COMMITTED_SNAPSHOTON(默认OFF)
此时【事务2】读到的是表中之前的快照值(不必等待【事务1】完成)。
此时相当于:
SET TRANSACTION ISOLATIONLEVEL READCOMMITTED
select * from dbo.Test WITH(READPAST) where name='kk'
解决三:
事务2用表提示READ COMMITTED LOCK把语句级别改为READ COMMITTED
--事务2
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
begin tran
select *from dbo.Test WITH(READCOMMITTEDLOCK)where name='kk'
commit tran
如果将 READ_COMMITTED_SNAPSHOT设置为OFF(默认设置),设置时关闭所有对此数据库的连接,
数据库引擎会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。
共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。
【测试三:不可重读】
--事务1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
begin tran
select *from dbo.Test where name = 'kk'
waitfor delay '00:00:05'
select *from dbo.Test where name = 'kk'
commit tran
--事务2
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
begin tran
update T setinfo = 'B更改' from Test T where name = 'kk'
commit tran
--事务1
SETTRANSACTION ISOLATION LEVEL READ COMMITTED
begintran
select * from dbo.Test where name = 'kk'
waitfor delay '00:00:05'
select * from dbo.Test where name = 'kk'
committran
--事务2
SETTRANSACTION ISOLATION LEVEL READ COMMITTED
begintran
update T set info = 'B更改' from Test T where name= 'kk'
committran
事务2的运行结果:
id name info
1 kk NULL
id name info
1 kk B更改
事务结束最后结果:
SELECT * FROM Test Wherename='kk'
id name info
1 kk B更改
说明:【事务1】读取了数据,【事务2】更改数据,【事务1】再读取数据。【事务1】两次读取都不一样!
解决一:提高隔离级别
SET TRANSACTION ISOLATIONLEVEL REPEATABLE READ
(REPEATABLE READ:允许重复读取数据,但读取的都是第一次读取的副本)
解决二:更改为快照级别
ALTER DATABASE DBName SETALLOW_SNAPSHOT_ISOLATIONON
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
此时【事务1】的运行结果2次都一样,读到的都是未更改前的值:
id name info
1 kk NULL
【测试四:幻读】
--事务1
SET TRANSACTION ISOLATION LEVEL REPEATABLEREAD
begin tran
select *from dbo.Test where name = 'kk'
waitfor delay '00:00:05'
select *from dbo.Test where name = 'kk'
commit tran
--事务2
SET TRANSACTION ISOLATION LEVELREPEATABLE READ
begin tran
INSERT INTOTest VALUES(2,'kk',null)
commit tran --事务1
SETTRANSACTION ISOLATION LEVEL SERIALIZABLE
begintran
select * from dbo.Test where name = 'kk'
waitfor delay '00:00:05'
select * from dbo.Test where name = 'kk'
committran
--事务2
SETTRANSACTION ISOLATION LEVEL SERIALIZABLE
begintran
INSERT INTO Test VALUES(2,'kk',null)
committran
事务2的运行结果:
id name info
1 kk NULL
id name info
1 kk NULL
2 kk NULL
事务结束最后结果:
SELECT * FROM Test Wherename='kk'
id name info
1 kk NULL
2 kk NULL
说明:【事务1】读取了数据,【事务2】插入了数据,【事务1】再读取数据。【事务1】两次读取都不一样!幻觉?
解决:提高隔离级别
SET TRANSACTION ISOLATIONLEVEL SERIALIZABLE
此时【事务2】等待【事务1】完成。
事务1的运行结果2次都一样:
id name info
1 kk NULL
范围锁:范围锁处于与事务中执行的每个语句的搜索条件相匹配的键值范围之内。这样可以阻止其他事务更新或插入任何行,从而限定当前事务所执行的任何语句。这意味着如果再次执行事务中的任何语句,则这些语句便会读取同一组行。在事务完成之前将一直保持范围锁。这是限制最多的隔离级别,因为它锁定了键的整个范围,并在事务完成之前一直保持范围锁。因为并发级别较低,所以应只在必要时才使用该选项。该选项的作用与在事务内所有SELECT语句中的所有表上设置HOLDLOCK相同。
如果在批处理中设置 REPEATABLE READ,并且该批处理调用一个将隔离级别设置为SERIALIZABLE的存储过程,则当该存储过程将控制返回给该批处理时,隔离级别就会恢复为REPEATABLEREAD。
并发事务引起的问题
问题
描述
结果
解决
丢失更新
A读—B读—A改—B改
A更改丢失
READ UNCOMMITTED
脏读
A改—B读—A回滚
B读无效值
READ COMMITTED
不可重读
A读—B改—A读
A读不一致
REPEATABLE READ
不可重读
A读—B改—A读
A读不一致
SNAPSHOT
幻读
A读—B增删—A读
A读或多或少
SERIALIZABLE
-
这两天对坦克(百度之星的坦克大战)做了些修改
2010-06-14 16:55:00改了这个以后我跟疯狂的战绩是红方全胜(前面11:1的那场输的就是作为红方的一场),而且以前赢的现在赢得更多些。蓝方没时间测了,回实验室还有事情。 这几天脑子里面想着坦克的事情,实验室的事情都跟不上了,18...以前在预测到的位置开枪后没打中敌人的话,我还会守在那里再打。就是为了防止敌人因为要对付我的预测而停顿一回合。守在那个地方打到底对于敌人的反预测有没有效果我不知道,因为我一直以来都在拿疯狂坦克作为我改进的对象。结果我发现对于疯狂坦克,这样的战术不但没作用(理所当然,疯狂坦克没有预测,也没有反预测),反而使得我过多火力浪费在空地上,没有去抢矿也没有去打敌人。于是我把预测到的敌人位置中没打中的去掉,不再守住那个地方打,这样一改竟然效果挺好。比赛最初发布的6张地图,红蓝双方分别来一次共12次,之前我最多8:4赢了疯狂,改了后我就11:1赢了,当然此时我不再是全部Sniper了,加了Pioneer进去。
对于Pioneer的碾压,我是当他一定能压毁对方(不管我挂不挂)就压,这样导致在跟敌人对战的时候容易浪费生命值。具体就是当我跟敌人距离为1时,敌人开火,此时我去压的话,系统先判断开火打中我,然后我再移动去压他,于是我多浪费一个生命值。所以其实即使我能压死他,我也不应该直接去压,有可能攻击他倒是更好。但是对于Striker,Pioneer就要尽量少跟他对战,因为Striker攻击力是2,Pioneer是1。 于是总结成这样,Pioneer跟敌方距离为1的时候,如果敌方是生命值大于等于2的Striker,那么我直接压他(虽然我可能会因此被他打中一枪,但比他打中两枪以上要好),否则我不压,跟他对战。改了这个以后我跟疯狂的战绩是红方全胜(前面11:1的那场输的就是作为红方的一场),而且以前赢的现在赢得更多些。蓝方没时间测了,回实验室还有事情。
这几天脑子里面想着坦克的事情,实验室的事情都跟不上了,18号有一个报告,我心理面有点担忧了。因为报告的内容,我根本就没有头绪了,还叫我做一个filter的大总结。。。 坦克好像时限有点问题,等我把实验室的事情忙完了,再到Linux下面跑一下看正不正常。昨天晚上在VMWare下面装了RedHat9,结果跑坦克的程序的时候竟然提示我libstdc++.so.6找不到。后来看到网上有人说RedHat停止RedHat9的更新了。。。 于是想与其更新RedHat9的库(我想象中是很麻烦),还不如重装个更高级一点的。好在室友说他有Ubuntu 8,过几天给他借来装。
坦克搞得我脑子有点混沌。本来想在百度空间发表的,竟然说
对不起,您的文章发表失败。
文章内容包含不合适内容,请检查我搞不懂了。发到这里来。 -
DEBIAN 下安装nfs服务器以及配置简单方法(做了些修改)
2006-04-06 12:17:00设置中都需要这样做,否则的话客户端上的 root 用户就会在服务器的输出文件系统中具有 root 的特权了。 All_squash: 这个选项把 root_squash 扩展为所有的用户,即客户端上的所有 UID 都映射为服务器上的 ... -
转:C# .NET中调用VB编写的DLL代码事例(我做了些修改)
2010-04-15 17:13:00然后修改工程名,class文件名,添加2个函数,如下图: 方便copy,代码如下: Public Function FncTestDLLForDotNet(instr As String) As Integer FncTestDLLForDotNet = 9 End Function ... -
validationEngine中文版 — jquery强大的表单验证插件(做了些小修改)
2011-07-11 17:18:00修改了部分验证规则。 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到圆角和阴影效果(万恶的IE)。 官方下载地址:... -
Helm部署的服务如何修改配置
2020-03-21 10:40:45helm给我们提供了易用的配置,但是默认配置可能满足不了我们需要,因此需要做些修改,本文提供了两种修改配置的方式供大家参考。 -
更本就存在些纰漏,下面是我做了稍许修改的结果:
2015-10-08 12:12:52看了其他的文章都不试一下就发出来,更本就存在些纰漏,下面是我做了稍许修改的结果: - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar // return NO to not become first responder { -
jquery能做些什么?
2015-01-29 10:18:56jquery能做些什么?1) 取得文档中的元素,2) 修改页面外观,3) 改变文档内容,4) 响应用户的交互操作,5) 为页面添加动态效果。 jquery能做些什么? 1) 取得文档中的元素。 2) 修改页面外观。 3) 改变... -
微信机器人能够做些什么事?
2018-11-25 20:58:00作为一个会写代码的产品经理,我最近自己在玩一个微信机器人的开源框架:wechaty,因为上手特别简单,通过修改hello world,我也写出了自己的微信机器人,所以引发了很多的联想,打算和朋友们聊聊这些想法。... -
cf修改游戏客户端是什么意思_CF发行制作人陈侃:想把游戏运营10年以上应该做些什么?...
2020-12-19 11:35:39将一款游戏运营11年不容易,不过CF/CFM发行制作人陈侃却认为迈入第11年对于CF这个IP来说只是一个开端,之后他们打算更长远地做下去。在2019腾讯游戏开发者大会(TGDC)上,陈侃对FPS这个品类如何做长线这个问题进行了... -
Kubernetes 1.8.x 全手动安装教程----转自Kubernetes中文社区(部分内容根据实验环境做了些修改,特此感谢...
2018-01-16 12:05:00若节点 IP 不同,需要修改apiserver-csr.json的hosts。 Front proxy certificate 下载front-proxy-ca-csr.json文件,并生成 Front proxy CA 密钥,Front proxy 主要是用在 API aggregator 上: $ wget ... -
Linux 单用户模式修改密码与救援模式修改密码总结
2018-01-16 22:14:31这里介绍两个工具单用户模式首先开机进入的GRUB(启动工具)界面,在此界面才可以进行接下来的操作单用户模式(修改密码)前提是如果GRUB未加密才可以用这里需要按e 进入可编辑界面linux16 那行需要做些修改加入 ... -
修改linux系统默认字符编码
2015-11-13 13:32:15有些linux系统中文会出现乱码,我们要做些修改:首先检查SecureCRT,选择utf-8,如果还有问题,修改/etc/profile文件。 -
awt,swing做的计算器小代码(效果图和源码)对前面版本作了些小修改
2007-09-12 23:59:00源码:http://dl2.csdn.net/down4/20070912/12235549568.java -
修改zabbix监控项刷新时间
2017-03-29 11:26:00于是这里做些修改 当使用zabbix自带模板监控的时候,键值这里需要做修改 他那个是取值的模式 这里是参数要换成参数不带参数是显示总数 修改后 zabbix自定义key监控大小... -
avx路由修改
2013-07-10 15:41:00删掉目录 /opt/avx/conf 下的queue.conf 文件,再web页面做些修改提交,可以看到新生成的queue.conf 文件的第一路由发生了改变。8600即是 root@AVX2000:/opt/avx/conf# vi queues.conf [general]... -
在 ssh 中做修改操修改总是出现错误的【解决方法】 个人经验
2011-02-22 14:30:44如 做bbs论坛时候,想修改帖子状态,有用过update、merge等些 方法。都有试过却总是报些错误... 经过测试。解决方法就是直接在业务层中修改,重新设置要修改的字段值就可以了。下面有个论坛主题设置置顶的... -
性能测试之前需要做些什么准备
2014-12-13 13:08:15在这半年以来,我陆续参加或者独立承担的项目组版本的部分性能测试,慢慢的有了一些认识,暂时做一个积累,和大家做一个交流. 性能测试的需求背景一般来自于以下三种情况: 第一种是现网出现性能问题... -
thinkPHP5模型中的修改器和自动完成
2019-10-15 19:05:22实际开发过程中,一些字段在存储到表中时需要做些修改,如用户注册时填写的密码在表中存储时需要加密,修改器因此产生。 修改器同获取器类似,需要写在模型中,其命名规则为set + 字段名(按驼峰法) + Attr。 ... -
测试管理005:面对用户反馈的缺陷,测试人员能做些什么?
2012-08-18 10:01:37那么,测试人员在面对用户反馈的缺陷的时候,我们能够做些什么?本文将从缺陷监测百分比DDP和测试过程改进2方面进行考虑:1)缺陷监测百分比DDP首先,测试人员可以根据用户反馈的缺陷数目,来判断和分析测... -
实现Windows non-Unicode设置批量修改
2017-11-26 16:37:00有时候我们使用英文Windows操作系统,中文文档文件名或者应用程序的中文界面会显示为乱码,这时候区域和语言选项需要做些修改来解决这样的问题。对于批量的修改,可供参考的中文文档以及脚本范例比较难找到,希望此... -
拿到一台新的ubuntu该做些什么
2021-02-07 22:24:22修改用户设置 设置root密码 sudo passwd root 连续输入两次密码后即可 新增普通用户 adduser ddlx 修改主机名 cd /etc/hostname 设置ssh密码登录 xshell密码登录需要 cd /etc/.ssh/ vi sshd_config 找到 ... -
Civil3D二次开发能做些什么
2017-03-21 11:40:00Civil3D 提供的API主要在AeccDbMgd...也就是说,通过Civil3D二次开发,我可以修改Civil3D drawing中的数据,例如创建一个Surface,修改一个Alignment,删除一个CogoPoint,获取一个Profile的几何信息,但是不提API来...
-
ucsb-cs64-lab03-源码
-
华为1+X——网络系统建设与运维(中级)
-
华为OSPF基本内容。。。
-
程序员必修基础套餐课
-
华为1+X认证——网络系统建设与运维(初级)
-
JS项目-源码
-
1996年scarlet.github.io-源码
-
Samba 服务配置与管理
-
iOS开发中自旋和互斥锁的理解以及所有锁的性能比较
-
2021-02-26
-
深究字符编码的奥秘,与乱码说再见
-
螺旋切割头:14“螺旋切割头-源码
-
用Hadoop进行分布式数据处理第2部分:进阶
-
初窥 Python 的 import 机制
-
翁恺老师的城堡游戏python版.rar
-
立个Flag
-
多个特性不同时如何设计继承体系结构
-
软件测试面试——Python编程基础
-
表情符号项目-源码
-
产品辩论赛总结