-
mysql备份并加密的脚本
日期:2011-12-25 | 分类:Mysql数据库
前不久CSDN 发生用户“帐号密码泄露”事件,如果他们09年的备份文件进行了加密,我想损失也不会这么惨重了。所以我们对数据库进行备份的时候,也需要对备份文件进行加密,以往万一。下面就是对mysql进行备份并进行加密的脚本。
#!/bin/sh#mysqlback... -
查看Mysql数据库有多大
日期:2011-11-29 | 分类:Mysql数据库
方法一:SELECT table_schema AS 'DBname',
Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',
Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'
FROM information_schema.tables GROUP BY table_schema ;... -
MySQL数据库扩展
日期:2011-11-21 | 分类:Mysql数据库
很多大规模的站点基本上都经历了从简单主从复制到垂直分区,再到水平分区的步骤,这是一个必然的成长过程。 1 主从复制、读写分离(R/W Splitting) 将应用程序中对数据库的写操作指向主服务器,而将读操作指向从服务器。从服务器定时向主服务器请求最新日... -
MySQL的show系列命令总结
日期:2011-11-18 | 分类:Mysql数据库
01、show tables或show tables from database_name; — 显示当前数据库中所有表的名称
02、show databases; — 显示mysql中所有数据库的名称
03、show columns from table_name from database_name; 或show columns from database_name.table_nam... -
InnoDB 和 MyISAM 两者区别总结
日期:2011-10-29 | 分类:Mysql数据库
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。一、InnoDB InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))... -
MongoDB2.0.0-RC0版本发布
日期:2011-08-27 | 分类:Mysql数据库
1.增加压缩命令
以前只能通过repair整个数据库的方式来进行数据压缩,而2.0版本增加了一个 compact 命令,使你可以针对Collection和其索引进行压缩。
2.并发增强
当写操作不能在内存中完成(要写的部分未命中实际内存)时,需要加上写锁。(SERVER-2563)目... -
Mysqlslap压力测试示例脚本
日期:2011-05-24 | 分类:Mysql数据库
#Mysqlslap压力测试 10个client 总100000个query请求 now()为取得当前时间戳。mysql>create database test_rp;创建一个表 see 两个字段,username(varchar) date(datetime) 自带的ID为自增长
#mysqlslap -h 192.168.1.151 -P 3306 -p'password' --create-schema=test_rp --query="insert into test_rp.see(username,date) values('www.ff-bb.cn',now())" --concurrency=10 --number-of-queries 100000 --debug-info -uroot -
转换Mysql的存储引擎
日期:2011-05-14 | 分类:Mysql数据库
转换Mysql文件的存储引擎,
比如要将导出为InnoDB存储引擎的数据库sql文件导入为ndb存储引擎先将sql文件中的 ENGINE=InnoDB 替换为ENGINE=Ndb。如果是InnoDB转MyIsam 也类似
[root@c3 bin]# perl -pli -e 's/ENGINE=InnoDB/ENGINE=Ndb/' "filename.sql"
然后再执行 mysql>source filename.sql;
方法二:如果之前已经导入MySQL sql而未更改数据表定义中的ENGINE= 子句,应在此时运行下述命令: world为数据库名
mysql> USE world;
mysql> ALTER TABLE City ENGINE=NDBCLUSTER;
mysql> ALTER TABLE Country ENGINE=NDBCLUSTER;
mysql> ALTER TABLE CountryLanguage ENGINE=NDBCLUSTER;
-
开启Mysql远程访问(Windows\Linux都适用)
日期:2011-04-12 | 分类:Mysql数据库
开启Mysql远程访问,windows下,如果当时在安装mysql的时候没有启用可远程访问,现在需要启用。
或者是在linux下安装好mysql之后需要启用可远程操作管理。操作如下,只有2步;
1 修改my.conf
bind-address = 127.0.0.1
注释掉,改为#bind-address = 127.0.0.1
2.用root登陆mysql执行如下命令
grant all on *.* to sonar@'%' identified by 'password123456';
grant all on *.* to sonar@localhost identified by 'passwor123456'; -
解决Can't connect to MySQL server on 'localhost' (10048)
日期:2011-03-03 | 分类:Mysql数据库
解决Can't connect to MySQL server on 'localhost' (10048), 一般见于使用mysql的windows 2003服务器.
c:>netstat -ano 可查看到 本机有不少端口连接到 mysql的 3308,状态都是LAST_ACK,所以导致discuz论坛 刷新会出现 不能连接数据库的报错。
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:4994 127.0.0.1:3308 LAST_ACK 1400
TCP 127.0.0.1:4996 127.0.0.1:3308 LAST_ACK 1400
TCP 127.0.0.1:4999 127.0.0.1:3308 LAST_ACK 1400
错误出现的原因:
应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致较低吞吐量.
微软技术支持知识库中指出 :当您试图从大于 5000 的 TCP 端口连接时收到错误 http://support.microsoft.com/kb/q196271/
我从本地端口可以看到 127.0.0.1:4999 已经到了5000
解决方案:
和本错误密切相关的两个windows的注册表项:TcpTimedWaitDelay和MaxUserPort的值.
TcpTimedWaitDelay 确定 TCP/IP 可释放已关闭连接并重用其资源前, 必须经过的时间. 关闭和释放之间的此时间间隔通称
TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态. 此时间期间, 重新打开到客户机和服务器的连接的成本少于建立新连接. 减
少此条目的值允许 TCP/IP 更快地释放已关闭的连接, 为新连接提供更多资源.
MaxUserPort 确定从系统请求任何可用用户端口时所用最大端口数,TCP/IP 可指定的最高端口号. 如果建立 TCP 连接最大端口连
接大于 5000, 本地计算机响应以下错误信息WSAENOBUFS (10055): 因为系统缺乏足够缓冲区或者因为队列已满而无法执行套接字
上操作, 从而导致应用程序的10048错误.
打开注册表编辑器regedit
TcpTimedWaitDelay 设置:
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值
设置此值为十进制 30, 十六进制为 0x0000001e
该值等待时间将是 30 秒。设置范围30-60秒
本项的默认值:0xF0(16进制), 等待时间设置为 240 秒
MaxUserPort 设置(增加最大值端口连接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 MaxUserPort 的新 REG_DWORD 值
设置到 65535
该值等待时间将是前面所设置的 30 秒。本项的默认值:5000(十进制)
关闭注册表编辑器, 在方便的时刻重启Windows系统。
建议以上操作现在测试环境中测试之后再调整生产线上的服务器
问题得到解决。这个是治标。如果要治本,还需要查看PID值,我这里出现状态为LAST_ACK 的PID值是1400,从任务管理器中可以看到这个PID对应的是tomcat6.exe,可见问题出在tomcat下某个程序。
-
SQL2005 使用SQL语句批量删除被注入的恶意代码的方法
日期:2011-01-18 | 分类:Mysql数据库
SQL2005 使用SQL语句批量删除被注入的恶意代码的方法
最近一朋友的网站访问时 360安全卫士提示有木马病毒,在google上搜索网站名称,也被冠以“该网站可能含有恶意软件,有可能会危害您的电脑。” 网站是IIs+ASP+sql server 2005
打开杀毒软件,360,冒着风险访问这个网址,然后360报“来自h--p://boytimes..cn/s.js”木马病毒。
然后查看网页源代码,发现有图片,有链接的地方都被插入了
服务器上的ASP页面文件没有被修改的迹象,被修改时间也是正常的,服务器的资源也很正常,CPU 内存使用率都不高。查看了一下SQL数据库表中的数据,果然每个varchar类型的字段里都被插入了
所以初期判断是数据库被注入了。
启动【 SQL Server Management Studio 】 在做操作之前将数据库备份一下。如何备份sql2005的数据库,请google吧,不难。
完整备份之后,新建一个查询,输入如下,用你数据库中有问题的部分替换掉有红色有下划线的部分,然后右击执行。declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for select a.name,b.name
from sysobjects a,syscolumns b ,systypes c
where a.id=b.id and a.xtype='u' and c.name
in ('char', 'nchar', 'nvarchar', 'varchar','text','ntext')
declare @str varchar(500),@str2 varchar(500)
set @str=' '/*要替换的内容放在引号里*/
set @str2=''
open table_cursor
fetch next from table_cursor
into @t,@c while(@@fetch_status=0)
begin exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')')
fetch next from table_cursor
into @t,@c end close table_cursor deallocate table_cursor;然后再查看数据库的表里的内容是不是正常了。
当然这个方法只是治标治不了本,下次还是会被注入,要根治的办法还是得修改程序漏洞。
-
mysql unknown command ‘\”‘问题解决办法
日期:2010-11-13 | 分类:Mysql数据库
在还原备份数据库的时候,遇到一个问题。
原来的服务器环境使用的windows,然后使用mysqldump备份出来的数据库怎么也不能在linux下的数据库中导入。导入的时候总是出现:
unknown command ‘\”‘
于是将 \’ 全部替换成 ‘ 结果... -
Oracle删除后不能重新安装的解决方法
日期:2010-03-19 | 分类:Mysql数据库

很多朋友只用了Oracle的删除,但很多情况下,他会发现重新安装时,点了下一步安装界面就消失了,往往无奈下只好重装系统,其实只是你数据库没删干净,删干净就不会出现这种情况了。
实现方法:
1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。
2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal... -
SqlServer 2005 导入已有的数据库方法罗列
日期:2010-03-10 | 分类:Mysql数据库

在SqlServer 2005 导入已有的数据库方法罗列 1 在SqlServer 2005 导入已有的数据库(*.mdf)文件 在SQL Server Management Studio里连接上数据库后,选择新建查询,然后执行语句
EXEC sp_attach_db @dbname = N'Sql2005DB',
@filename1 = N'D:\Sql2000DB.mdf', ... -
让MySQL不区分大小写
日期:2009-12-22 | 分类:Mysql数据库
部署系统的时候,从windows下导出mysql为sql语句,导入到Linux下的mysql,导入顺利,启动工程发现报错,日志里提示看到 找不到 SiteAdmin 但是我的数据库里面明明都是小写,怎么一到Linux里面来就有大小的了呢。后来一查,原来是Linux下mysql对数据库大小写敏感,修改如下:
unix/linux的文件系统是区分大小写,mysql将数据库表用文件来表示,因此对运行于unix/linux系统中的mysql数据库进行查询 时,SQL语句中的表名大写小敏感的。而windows则大小写不敏感,为了兼容两个系统,我们可以建立全部小写的数据库表名,
lower_case_table_names=1 让MySQL不区分大小写
在CentOS安装的MySQL的配置文件中(/etc/my.cnf),是没有lower_case_table_names=1这行的。
在Windows安装的MySQL的配置文件中(my.ini),是有lower_case_table_names=1这行的。
lower_case_table_names=1的用途是让MySQL实现不区分大小写。
所以当时出了些毛病,后来才发现是这个的问题。连忙在CentOS中的my.cnf(/etc/my.cnf)的[mysqld]区段下增加:
lower_case_table_names=1也有从Linux下倒出来到windows中都是大写的情况,同样,在windows配置下填写lower_case_table_names=0即可。







