存档

作者存档

解决在phpmyadmin中执行sql语句出现的错误:Unknown storage engine ‘InnoDB’

2016年10月3日 没有评论

问题:phpmyadmin报错——Unknown storage engine ‘InnoDB’

解决方法:解决方法:
1.关闭MySQL数据库
   2.修改my.ini文件,把skip-innodb这行注释掉
   3.打开MySQL数据库
当然把innodb改成MyISAM也行

原因:没有开启MySQL InnoDB存储引擎。

关于innodb引擎的资料:
事务型数据库的首选引擎,支持ACID事务,支持行级锁定。InnoDB是为处理巨大数据量时的最大性能设计。InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。

  简介   InnoDB 给 MySQL 提供了具有事务(transaction)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)、多版本并发控制(multi-versioned concurrency control)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行级锁(locking on row level),提供与 Oracle 类似的不加锁读取(non-locking read in SELECTs)。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的行级锁定(row level locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。   在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

MySQL

InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。InnoDB 表的大小只受限于操作系统的文件大小,可也可以每个表使用各自独立的表空间,只需要启用选项 innodb_file_per_table。   在 MySQL 的源代码中,从 3.23.34a 开始包含 InnoDB 表引擎,并在 MySQL -Max 的二进制版本中激活。

分类: Linux, 解决方案 标签: ,

ora-01033:oracle initialization or shutdown in progress 解决方法

2016年10月1日 没有评论

今天研究Oracle遇到了这个问题ora-01033:oracle initialization or shutdown in progress,经过分析研究终于解决了,写下来纪念一下。我的库是oracle 9i,具体就是90的。
一、首先:问题的产生原因,出现这个错误是因为我将oracle\oradata\oradb下的一个文件误删除掉后出现的。
二、现象:SQL*Plus无法连接,显示以下错误:ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同样的错误。
三、分析:应该是Oracle在启动后,用户登录时是要将方案中原有配置信息装载进入,装载过程中遇到原有文件指定的位置上没有找到,所以就报出错误。
四、解决过程:
1、我在解决时由于着急使用,便用Database Configuration Assistant工具重新创建了一个新的库,临时解决急用的问题,同时也给后期解决ora-01033问题埋下了隐患。
2、在9i中是没有svrmgrl 命令的,要用sqlplus。
3、先在windows下运行cmd,进入DOS环境。
4、以DBA用户登录,具体命令是
sqlplus /NOLOG
SQL>connect sys/change_on_install as sysdba
提示:已成功

SQL>shutdown normal
提示:数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭

SQL>startup mount
提示:ORACLE例程已经启动
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕

SQL>alter database open;
提示:
第1 行出现错误:
ORA-01157: 无法标识/锁定数据文件19 – 请参阅DBWR 跟踪文件
ORA-01110: 数据文件19: ””C:\oracle\oradata\oradb\FYGL.ORA”
这个提示文件部分根据每个人不同情况有点差别。

继续输入
SQL>alter database datafile 19 offline drop;
提示:数据库已更改。

循环使用最后两步,直到alter database open;后不再提示错误,出现“数据库已更改”。

如果出现以下。就按这样就可以恢复

第 1 行出现错误:
ORA-01172: 线程 1 的恢复停止在块 208 (在文件 3 中)
ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份

SQL> recover database;
完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL> select status from v$instance;
STATUS
————
OPEN

然后接着输入即可
SQL>shutdown normal
提示:数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭

SQL>startup
提示:ORACLE例程已经启动
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕
就可以解决了。建议是如果可以,直接重新服务器。

5、最后说一下,第一条提到的隐患,因为创建了新的库,ORACLE_SID也就发生了变化,在用户登录的时候会有ORA- 12560错误,解决这个问题是将系统注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 \ORACLE_SID
键值修改成之前那个SID就可以了,用户也能就能正常登录了

scp和rsync限制传输速度

2016年9月25日 没有评论

在linux下经常向其他服务器传输文件。有时在总带宽的限制下。不可能时时跑满占用带宽。这种情况下我们就需要对传输进行一定的限制和自定义。以下写出两个经常使用的传输命令的参数,希望对大家有一定帮助。

1.scp 限速100KB/s

scp -l 1000 testfiles root@192.168.1.108
此时的传输速率就是1M/8=100KB左右

2.rsync 限速100KB/s
rsync -auvzP –bwlimit=100 本地文件 远程文件
参数说明:
v:详细提示
a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。
z:压缩
u:只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
P:是综合了–partial –progress两个参数,
此时的rsync支持了断点续传。

通常情况下。大文件,我建议大家使用rsync。因为有断点续传。可以有更好的选择。

分类: Linux, 解决方案 标签: , , , ,

利用mysql二进制日志进行mysql数据库的恢复(转)

2016年9月4日 没有评论

对于需要确保mysql数据库完整性的网站,mysql的二进制日志至关重要。比如你做了mysql数据库的主从备份,你认为这应该能确保mysql从数据库是最新的内容了,这的确没错,但有一种情况,比如你误删除了数据,或者被黑客入侵而清除了数据库,这时mysql从服务器也会跟主数据库同步,这是你不想看到的,但数据确实没了。但是如果你每天进行了数据库的完整备份,而且mysql的二进制日志还在的话,这将有可能恢复最新的数据。下面介绍方法。

1、开启二进制日志
在使用二进制日志恢复数据库时,请确保你已经开启二进制日志,检查my.cnf文件是否存在log-bin=mysql-bin。

2、定期完整备份
你还需要间隔一定的时间做数据库的完整备份,只有这样你才有可能快速的恢复最新数据。

3、查看备份时间
查看你备份的时间,如dedecmsv57gbksp1.sql,取最后一行:– Dump completed on 2012-11-08 11:11:48。

4、导出二进制日志
暂时关闭网站,防止新数据写入,导出二进制日志:

mysqlbinlog mysql-bin.000001 -d dedecmsv57gbksp1 –start-datetime=”2012-11-08 11:11:48″ >binlog.sql

5、调整binlog.sql
编辑binlog.sql,删除误操作的语句。

6、导入数据
重建数据库dedecmsv57gbksp1,导入dedecmsv57gbksp1.sql,接着导入binlog.sql。

Ubuntu 解决ssh登录不上permission denied

2016年8月7日 没有评论

新版本的ubuntu server版本安装完成后是默认不能ssh直接登陆的。要配置密钥配合。这样其实很麻烦。

ssh不能登录上,就修改sshd的默认配置
ssh出现permission denied (publickey)问题:

修改/etc/ssh/sshd-config文件.

将其中的PermitRootLogin no修改为yes

PubkeyAuthentication yes修改为no

AuthorizedKeysFile .ssh/authorized_keys前面加上#屏蔽掉,

PasswordAuthentication no修改为yes就可以了。

有关key的文件都先#注释掉吧。重启一下应该可以连了。建议这些都使用SSH Secure Shell 或者 SecureCRT。
如果要用putty,建议使用版本0.63以上。

分类: Linux, 解决方案 标签: ,

出现Visual Studio Just-In-Time Debugger的解决方法

2016年8月1日 没有评论

经常弹出“Visual Studio Just-In-Time Debugger” 对话框,内容是:“An unhanled win32 exception occurred in explorer.exe[2548]. just-in-time debuenabled. in visual studio,just-in-debugging can be enabled from tools/options/debugging/just-in-time.‘check the documentation index for ‘just-in-timedebugging,errors’for more information无论你选哪一项或直接关闭都会导致程序关闭。
  遇到这种问题首先肯定是上网搜索各种解决方法,但好像只有一种方法,点选[开始]>[执行],在“开启”对话框中键入以下指令:
  drwtsn32 -i
  点选[确定],这个指令将会把Dr.Watson设定成预设的Debugger工具,这样就不会让您每次都会跳出这样的错误讯息了。
  装完之后这个问题就没有再出现,不过网上也有人找不到drwtsn32这个程序。
  这里提高一下某位高手的解决方法,虽然没有试过,但是可以试试!!
  解决方法在CSDN博客中:http://blog.csdn.net/bright60/archive/2006/08/24/1111592.aspx
  出现这种情况,往往是因为原先安装有VS,后来因某些原因(比如:卸载)导致VS无法使用!!
  当系统中的有些软件出现错误时,会自动调用vs进行调试,但因为VS无法使用,就出现了visual studio just-in-time debugger窗口。
  此方法主要就是删除指定的注册表

32位系统处理方法:use the registry editor to delete the following registry keys:
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

  64位系统处理方法:On a 64-bit operating system also delete the following registry keys:
  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
  HKEY_LOCAL_MACHINE\SOFT

  用vbs写:
  Set WshShell=CreateObject(“Wscript.Shell”)
  WshSHell.RegDelete “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger”WshSHell.RegDelete “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger”msgbox “sucsess”

office word excel在非管理员帐户下不能打开的解决办法

2016年7月30日 没有评论

在很多公司中为了安全其实并不是都开放管理员用户给使用者,或是员工使用。其实这样也好,不太容易中毒。遇到这样情况下很容易出现权限给限制死不能使用一些软件的情况。office就是其中比较用的多的一种情况。那要怎么办呢。其实还是多少有些办法的。

要完成这个office word excel可以使用先觉条件建议大家是下载安装比较全的安装版本,不要用绿化版本。绿化版本很多东西不全。会不能用。

我们先是在管理员帐户下安装前,查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer,在左边的窗口里选中选择Installer点”右键→权限”

正确应为:

Administrators – 完全
System – 完全
Everyone – 读

再添加你需要完全控制的帐户…

正确配置microsoft office enterprise 2007 :

我的word2007安装以后,每次都打开Word2007时都会提示:“正在配置microsoft office enterprise 2007”,弹出Office安装配置进度向导。即便在安装时,选择安装所有功能组件,在每次打开 Word 、 Excel 、 PowerPoint 或其他Office2007相关软件时,都弹出安装配置向导,这应该是个BUG吧!解决方法有三个:

方法一、

Word2003中解决方法:

在“开始”在“运行”对话框中输入:
reg add HKCU\Software\Microsoft\Office\11.0\Word\Options /v NoReReg /t REG_DWORD /d 1
然后回车

Word2007中解决方法:

同样在“开始”–>“运行”对话框中输入:

reg add HKCU\Software\Microsoft\Office\12.0\Word\Options /v NoReReg /t REG_DWORD /d 1

回车即可

方法二、

打开“我的电脑”——“C盘”——“Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller”——找到一个“SETUP.EXE”的文件,对此文件重命名

方法三、

开始–>运行–>输入regedit–>打开注册列表,找到HKEY_LOCAL_MacHINE\SOFTWARE\Classes,右键–>权限–>高级,选第二个选项CREATOR OWNER 点编辑,在完全控制,允许那边打钩!确定! 这时可能防火墙会跳出警告,你点放过,重启,就OK了!

解决office应用程序配置不正确问题:

有关打开某程序时显示:应用程序配置不正确,应用程序未能启动,请重新安装此程序之类的问题反馈,这样的问题不止发生于OFFICE 2007,很多程序也有这个问题,例如在使用 VC++2005环境下生成的程序,放置到未安装VC环境的机器下后,就可能会出现这个问题。
重装是解决不了问题的,
解决的一种方法是查看*exe.intermediate.manifest文件,需要注意这个文件中的3个关键词:Microsoft.VC80.CRT,Microsoft.VC80.MFC和Microsoft.VC80.DebugCRT。寻找到….”Program Files”Microsoft Visual Studio 8″VC”redist文件夹下面,找到这些名称的子文件夹,拷贝它们下面所有的文件到希望发布的EXE文件下面,一起打包。这些文件也就是mfc80.dll,msvcr80.dll,msvcp80.dll和Microsoft.VC80.CRT.manifest等。此错误发生的原因是在目标机器上需要这些文件的支持。

那么再让我们来看看OFFICE遇到这样的问题如何解决呢?

下面是OFFICEBA为大家收集的一些办法,大家可以尝试:

1、首先当然是按提示尝试重新安装整个OFFICE 2007

2、如果仅仅是某个程序如EXCEL 2007不能启动,而WORD 2007能启动,那么尝试下:试试运行开始–>Microsoft Office–>Microsoft Office工具–>Office 诊断

3、尝试使用office安装盘修复

4、安装Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) 安装在未安装 Visual C++ 2005 的计算机上运行使用 Visual C++ 开发的应用程序所需的 Visual C++ 库的运行时组件。
此软件包安装 C Runtime (CRT)、Standard C++、ATL、MFC、OpenMP 和 MSDIA 库的运行时组件。对于支持并行部署模式的库(CRT、SCL、ATL、MFC 和 OpenMP),这些运行时组件安装在支持并行程序集的 Windows 操作系统版本的本机程序集缓存中,这一缓存也称为 WinSxS 文件夹。有关 Visual C++ 应用程序受支持的部署方式的详细信息

分类: 解决方案 标签:

有一台服务器电流测试是0.3A/小时一天用多少度电呢?

2016年7月25日 没有评论

先普及下基本知识吧。1A(安)电=1000mA(毫安)那0.3A就是300mA(毫安)所以得到以下:

我们计算一下这个设备的功率是:0.3A*220V=66W,1度电=1000W/h,1000/66=15小时,应该是15小时左右一度电吧。那一个月就是30*24/15=48度电左右。

目前国内及海外的一些机房都限制电量。也就是按一个机柜多少kva的电。一般从5-13A一整机柜不等的电量。

建议大家购买测试电量的设备,测试完后再托管。超电加钱还是蛮贵的啦。

内存中DDR和DDR2,DDR3,区别在那里

2016年7月23日 没有评论

严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM。DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。

SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

与SDRAM相比:DDR运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了DLL(Delay Locked Loop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDL本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRA的两倍。

从外形体积上DDR与SDRAM相比差别并不大,他们具有同样的尺寸和同样的针脚距离。但DDR为184针脚,比SDRAM多出了16个针脚,主要包含了新的控制、时钟、电源和接地等信号。DDR内存采用的是支持2.5V电压的SSTL2标准,而不是SDRAM使用的3.3V电压的LVTTL标准。

DDR2内存起始频率从DDR内存最高标准频率400Mhz开始,现已定义可以生产的频率支持到533Mhz到667Mhz,标准工作频率工作频率分别是200/266/333MHz,工作电压为1.8V。DDR2采用全新定义的240 PIN DIMM接口标准,完全不兼容于DDR的184PIN DIMM接口标准。

DDR2和DDR一样,采用了在时钟的上升延和下降延同时进行数据传输的基本方式,但是最大的区别在于,DDR2内存可进行4bit预读取。两倍于标准DDR内存的2BIT预读取,这就意味着,DDR2拥有两倍于DDR的预读系统命令数据的能力,因此,DDR2则简单的获得两倍于DDR的完整的数据传输能力。

内存DDR与之DDR2和DDR3的区别之参数不同之处,见下面表格 :

参数 DDR DDR2 DDR3
电压 VDD/VDDQ 2.5V/2.5V 1.8V/1.8V(±0.1) 1.5V/1.5V(±0.075)
I/O接口 SSTL_25 SSTL_18 SSTL_15
数据传输率(Mbps) 200~400 400~800 800~2000
容量标准 64M~1G 256M~4G 512M~8G
Memory Latency(ns) 15~20 10~20 10~15
CL值 1.5/2/2.5/3 3/4/5/6 5/6/7/8
预取设计(Bit) 2 4 8
逻辑Bank数量 2/4 4/8 8/16
突发长度 2/4/8 4/8 8
封装 TSOP FBGA FBGA
引脚标准 184Pin 240Pin 240Pin

上表为大家对比的是目前标准DDR2与DDR3内存参数对比,通过对比我们可以发现,在主频方面,DDR3内存是2000MHz明显高于DDR2的800MHz的主频,另外在时序方面DDR3内存也优秀于DDR2内存,还有一个方面就是功耗方面,DDR3工作电压为1.5v低于DDR2的工作电压,也就是说DDR3内存速度全面优秀于上一代DDR2内存,并且耗电更少。

DDR2内存技术最大的突破点其实不在于所谓的两倍于DDR的传输能力,而是,在采用更低发热量,更低功耗的情况下,反而获得更快的频率提升,突破标准DDR的400MHZ限制。
所以我们看到的目前的DDR3其实它相对来说我觉得叫DDR2pro或是DDR2+应该更为贴切。
因为它其实是DDR2的延伸..只是提升了频率降低了能耗而已,实际的技术并没有特别的变化。

分类: 网络产品 标签: ,

/etc/rc.local 中部分命令无法执行的原因及解决办法

2016年7月10日 没有评论

大家都知道,在linux发行版本中,如需添加随系统启动而自动运行的服务,只需在/etc/rc.local 脚本文件中添加即可,

但如果其运行的命令或程序不带路径,如下

#!/bin/bash

distccd –user nobody –allow 10.10.98.0/24 –log-file=/var/log/distcc.log –verbose –daemon
loadavg -s 10.10.98.20 >/dev/null 2>&1

注:distccd、loadavg命令存放在/usr/local/bin/目录下

在系统执行这些命令时将报错,无法正常执行!究其原因: 由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。

故,在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。

分类: 解决方案 标签: ,