浏览模式: 普通 | 列表
分类: Mysql | < | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | >
用的mysql版本是percona的5.0.75今天发现之前10天得binlog依然保存,当天得binlog数据不足1000M,很奇怪为什么没有自动删除呢 expire_logs_days已经设置为2了。后来查了查文档,mysqld对于日志清理的操作是要log flushing 时候才会发生。但什么情况下才会触发log flushing呢有以下几种情况:

1 重启mysql

2 命令行输入

flush Logs
mysqladmin flush-logs,
mysqladmin refresh,
mysqldump –flush-logs,
mysqldump –master-data

3 满足max_binlog_size

当以上几个条件满足后会触发log flushing操作,它会检查expire_logs_days这个动态参数(set global expire_logs_days=1) ...

阅读全文…

关于mysql二进制日志的一些命令

[ 2012-11-05 23:52:27 | 作者: admin ]
定义: 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。

作用:
1。二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。
2。二进制日志还用于在主复制服务器上记录所有将发送给从服务器的语句。
不良影响:
运行服务器时若启用二进制日志则性能大约慢1%。


开启bin-log日志
通过my.cnf 添加 log-bin=file 选项可以开启
日志位置
>>如果没有指定文件名,则Mysql使用hostname-bin文件.
>>如果指定了相对路径,则假定该路径相对于数据目录
>>Mysql在文件名后添加了数字索引.所以该文件最后的形式为filename.number
如果你在日志名中提供了扩展名(例如,–log-bin=file_name.extension),则扩展名被悄悄除掉并忽略。
...

阅读全文…

CentOS5.3的mysql双机热备

[ 2012-11-05 23:16:00 | 作者: admin ]
p.s.网上看了下,没有找到原作者,就不注明了

花了大半天的时间研究mysql 5.0.* ,参考了很多文档,总算将mysql的双机热备给搞定了。心情很好,写个文章纪念一下。因为以后还可能实际用到,所以也作以下笔记。
使用两台虚拟机,nod1和nod2,分别设置两块网卡,桥接到主机网卡上。
nod1 eth0:192.168.145.162
eth1:192.168.254.1
nod2 eth0:192.168.145.168
eth1:192.168.254.2

1.基础安装mysql.
首先干净的系统,不是干净的系统不要紧,反正自己搞明白就行了。在nod1上安装mysql.

yum -y install mysql-server
chkconfig mysqld on
service mysqld start
mysqladmin -uroot password’1q2w3e’修改root密码。
...

阅读全文…
本文作者:解道成

拟在实验室测试进行MySQL的在线备份测试
1、建立一个 主 MySQL 服务器
2、建立一个从 MySQL 服务器
3、建立从主服务器到从服务器的在线数据复制

目的:
1、MySQL的安装、管理
2、主从服务器的建立,以保证以后数据库系统的高可用性
3、测试一下相关的性能。

操作如下:
第一步:开始时如果slave上的数据和master上的不同
,需要同步数据库
1. 备份数据库
mysqldump -uroot -padmin midp > "C:/Program Files/MySQL/MySQL Server 5.0/logs/back.sql"
2. 恢复数据
mysql -uroot -p123456 midp < "C:/Program Files/MySQL/MySQL Server 5.0/logs/back.sql"
...

阅读全文…

mysql分表的3种方法

[ 2012-10-09 12:45:29 | 作者: admin ]
一,先说一下为什么要分表

当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。

根据个人经验,mysql执行一个sql的过程如下:
1,接收到sql;

2,把sql放到排队队列中 ;

3,执行sql;

4,返回执行结果。

在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时间。其实这二个是一回事,等待的同时,肯定有sql在执行。所以我们要缩短sql的执行时间。


mysql中有一种机制是表锁定和行锁定,为什么要出现这种机制,是为了保证数据的完整性,我举个例子来说吧,如果有二个sql都要修改同一张表的同一条数据,这个时候怎么办呢,是不是二个sql都可以同时修改这条数据呢?很显然mysql对这种情况的处理是,一种是表锁定(myisam存储引...

阅读全文…

MySQL忘记密码恢复密码的实现方法

[ 2012-09-22 16:41:32 | 作者: admin ]
p.s. 需要注意,新版的MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
所以更改语句替换为
update mysql.user set authentication_string=password('root') where user='root' ;



一、服务器环境

1、系统windows2003 中文企业版 sp2

2、mysql 5.1.55

3、php 5.2.17

4、IIS 6.0

二、破解过程

1、停止mysql服务(以管理员身份,在cmd命令行下运行)使用如下命令:
net stop mysql


attachments/201209/22_164341_.jpg


  2、.使用命令启动mysql数据库,命令如下
...

阅读全文…
介绍一个非常有用的mysql启动参数—— --skip-grant-tables。顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。
        操作方法:
        1、杀掉原来进行着的mysql:
              rcmysqld stop
              或者:
              service mysqld stop
              或者:
              kill -TERM mysqld
        2、以命令行参数启动mysql:
              /usr/bin/mysqld_safe --skip-grant-tables &
        3、修改管理员密码:
              use mysql;
              update user set password=password('yournewpasswordhere') where user='root';
...

阅读全文…

Mysql全文搜索match against的用法

[ 2012-08-18 13:58:30 | 作者: admin ]
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上创建

对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将是非常慢的。
1.使用Mysql全文检索fulltext的先决条件
表的类型必须是MyISAM
建立全文检索的字段类型必须是char,varchar,text

2.建立全文检索先期配置
由于Mysql的默认配置是索引的词的长度是4,所以要支持中文单字的话,首先更改这个.
*Unix用户要修改my.cnf,一...

阅读全文…