于吉吉的技术博客

建造高性能门户网

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 6 文章 :: 149 评论 :: 0 Trackbacks

mysql

     摘要: mysql的官方网站是 http://www.mysql.com

tar zxvf mysql-5.1.50.tar.gz

cd mysql-5.1.50

./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
--enable-local-infile --with-low-memory

make && make install

chmod +w /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

cp support-files/my-medium.cnf /etc/my.cnf  阅读全文
posted @ 2010-11-30 15:21 陈于喆 阅读(380) | 评论 (0)  编辑

     摘要: 听DBA的人说,相比oracle,MySQL就是一个玩具级别的数据库,在网易门户中,DBA基本很少去管理到MySQL的东西,所以我们产品使用到的MySQL的一些配置和优化还是需要我们开发人员自己动手,下面就简单介绍一下实用的定期优化方法

定期分析表

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]

本语句用于分析和存储表的关键字分布。在分析期间,使用一个读取锁定对表进行锁定。这对于MyISAM, BDB和InnoDB表有作用。对于MyISAM表,本语句与使用myisamchk -a相当。

MySQL使用已存储的关键字分布来决定,当您对除常数以外的对象执行联合时,表按什么顺序进行联合。

mysql> analyze table a;
+--------+---------+----------+-----------------------------+
| Table | Op | Msg_  阅读全文
posted @ 2010-10-10 14:55 陈于喆 阅读(5603) | 评论 (2)  编辑

     摘要: 如果你的MyIsam表存在大量高并发的读写,那么就可能出现坏表的现象,这是因为MyIsam存储引擎所决定的,一张损坏的表的症状可能是以前某些错误

*.frm 被锁定不能更改
找不到*.MYI
文件意外结束
记录文件损坏

处理1
使用MySQL自带的myisamchk的工具进行修复,myisamchk不仅可以检查和修复MyIsam表,还可以进行优化和分析表,实际上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk进行修复

myisamchk -r tablename

其中-r参数的含义是recover,在以往的应用,这语句几乎可以解决上面所述碰到的问题,如果还不行,可以使用

myisamchk -o tablename

其中-o参数的含义是--safe-recover,可以进行更安全的修复

处理2
使用MySql的CHECK TABLE和REPAIR TABL  阅读全文
posted @ 2010-10-10 14:11 陈于喆 阅读(1961) | 评论 (0)  编辑

     摘要: mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二进制日志对数据库进行各种维护和优化,其他日志也会在后面陆续会做详细的介绍。

二进制日志(bin-log日志)
在上一篇介绍mysql主从配置的blog中,已经提过bin-log日志的作用和使用,bin-log日志记录了所有的DDL和DML的语句,但不包括查询的语句,语句以事件的方式保存,描述了数据的更改过程,此日志对发生灾难时数据恢复起到了极为重要的作用。

开启
mysql默认是没有开发bin-log日志,首先我们需要开启bin-log日志,在my.cnf中修改



指定了bin-log日志的路径,开启日志后需要myssqladmin flush log才生效,重启后我们发现在刚才设定的路径新增了log文件,这就是我们需要的二进制日志



由于日志是以二进制方式存储的,不  阅读全文
posted @ 2010-09-04 18:55 陈于喆 阅读(17032) | 评论 (1)  编辑

     摘要: 检查从服务器一般使用show slave status命令来检查

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.100
Master_User: root
Master_Port: 3306
Connect_Retry: 3
Master_Log_File: mysql-bin.003
Read_Master_Log_Pos: 79
Relay_Log_File: mysql -relay-bin. 003
Relay_Log_Pos: 548
Relay_Master_Log_File: mysql -bin. 003
Slave_IO_Running: Yes
Slave_SQL_Ru  阅读全文
posted @ 2010-08-23 21:35 陈于喆 阅读(4063) | 评论 (0)  编辑

     摘要: 前天迁移了一个老系统,用的mysql是4.0要迁移到5.0的环境下,发现了一个问题,在password()函数上发生错误,查一查原来password()函数在mysql5.0已经发生了变换
在mysql4.0下

mysql> select password('abc');
+------------------+
| password('abc') |
+------------------+
| 7cd2b5942be28759 |
+------------------+

而在mysql5.0下

select password('abc');
+-------------------------------------------+
| password('abc') |
+-------------------------------------------+
| *  阅读全文
posted @ 2010-08-23 10:41 陈于喆 阅读(270) | 评论 (0)  编辑

     摘要: 在上一篇MySQL主从复制配置 已经介绍过几个启动时的复制参数,下面再介绍几个常用的启动选项,

(1) log-slave-updates

log-slave-updates这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作



(2) master-connect-retry

master-connect-retry这个参数是用来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒



(3) read-only

read-only是用来限制普通用户对从数据库的更新操作,以确保从数据库的安全性,不过如果是超级用户依然可以对从数据库进行更新操作



(4) slave-skip-errors

在  阅读全文
posted @ 2010-08-22 23:30 陈于喆 阅读(559) | 评论 (0)  编辑

     摘要: Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。

(1)首先确保主从服务器上的Mysql版本相同

(2)在主服务器上,设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限,如:


mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY

'123456';

Query OK, 0 rows affected (0.13 sec)


(3)修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务


[mysqld]

log-bin = /home/mysql/log/mysql-bin.log

server-id=1

阅读全文
posted @ 2010-08-22 23:28 陈于喆 阅读(52098) | 评论 (4)  编辑