使用MySQL-Proxy读写分离时的注意事项

在动手操作前最好先安装好MySQL-Proxy,并配置好MySQL主从服务器。
延迟问题
读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSyncReplicationDesign补丁。
端口问题
MySQL-Proxy缺省使用的是4040端口,如果你想透明的把3306端口的请求转发给4040的话,那么可以:
iptables -t nat -I PREROUTING -s ! 127.0.0.1 -p tcp –dport 3306 -j REDIRECT –to-ports 4040
如果想删除这条规则,可以把上面例子中的-I换成-D。
密码加密方式
MySQL-Proxy不支持老的密码加密方式,所以...

通过status信息对MySQL服务器进行优化

  网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。
  mysql> show global status;
  可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:
  mysql> show variables;
  一、慢查询
  mysql> show variables like ‘%slow%’;    +&...

mysqlslap简单压力测试

mysqlslap是官方提供的压力测试工具之一,官方介绍如下:
mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to reportthe timing of each stage. It works as if multiple clients are accessing the server. mysqlslap isavailable as of MySQL 5.1.4.
下面介绍一些常见参数:
–auto-generate-sql-write-number每个线程中产生多少个insert
–auto-generate-sql-guid-primary自动产生guid格式的主键
–number-of-queries=50000每个连接客户端总共发起的查询次数
–concurrency=10,50,100并发连接线程数,分...

mysql show status详解

Aborted_clients
指出由于某种原因客户程序不能正常关闭连接而导致失败的连接的数量。如果客户不在退出之前调整mysql_close()函数,wait_timeout或interactive_timeout的限制已经被超出,或者是客户端程序在传输的过程中被关闭,则这种情况会发生。
Aborted_connects
指出试图连接到MYSQL的失败的次数。这种情况在客户尝试用错误的密码进行连接时,没有权限进行连接时,为获得连接的数据包所花费的时间超过了connect_timeout限制的秒数,或数据包中没有包含正确的信息时,都会发生。

mysqldump: Got error: 1044: Access denied…when using LOCK TABLES

mysql使用普通用户备份出现:
[root@xok.la]# mysqldump -u dbuser -ppass db > db.sql
mysqldump: Got error: 1044: Access denied for user ‘dbuser’@'localhost’ to database ‘db’ when using LOCK TABLES
解决一:
加上-skip-lock-tables选项即可。即:
[root@xok.la]# mysqldump -u dbuser -ppass db –skip-lock-tables > db.sql
解决2:
使用root账户备份。

...

MySQL-Front v5 注册码,注册机。

在MySQL-Front v5.0下测试通过。
NAME:xok.laKey:e1Ns2izlxZwu9Lb4X8qlcWGoxQpUU+hI8CsVahbbMjpH2F5PfAgosxzjGhATkWJuUsE8QXsqfZ5iSs9yM7D2XMOUVFpKud9K2977pO7s1Efi72iGWxUn+209a6tulHkq5cgLtLSpWsK7uvsOeG4UgYZoRnbp+0T4PJEplfQk9YpMfY9yYJG+NOUbvM1+kMcfCWd9iq3AZHrFHTm5qpSWEiJamTtIpyAD4UuLXoNyojh5Ne0S6SWxxUJsUQS3DStBo/e0aVBzhRwmrtvg4QdUIg==
注册机下载:/file/2009/03/MySQL-Front5_key.rar

...

mysql-front 无法连接本机mysql.

下载了mysql-front 5.0,使用Direct连接类型不能连接本机的mysql 5.1.30-community,却能远程连接其他的数据库服务器。本机的phpmyadmin又可以连接本机的库。
最后只能选择DLL的连接类型连接本机的mysql.
vendor库路径选择MYSQL的目录的BIN目录下的libmysql.dll,比如我的是:
D:\Program Files\MySQL\MySQL Server 5.1\bin\libmysql.dll
这样就能连接本机了。

...

mysql-bin.index路径修改

从mysql4升级到mysql5后,不知觉中发现产生的mysql-bin开头的文件路径改变了,这些都是操作过的语法缓存文件,以前都是产生在mysql库的根目录下的。
修改办法:
vi /etc/my.cnf
在[mysqld]下添加:
log-bin=/mysql_data/mysql-binlog-bin-index=/mysql_data/mysql-bin.index
我的如下:
[mysqld]datadir=/mysql_datapid-file=/var/log/mysql/mysql.pidlog-bin=/mysql_data/mysql-binlog-bin-index=/mysql_data/mysql-bin.index
重新启动mysql服务。

...

修改mysql的监听地址(unknown variable ‘defaults-file)

默认mysql是监控所有的ip地址,也就是0.0.0.0,为了安全考虑,我们也许只要mysql监控本地地址就好了。那么可以只要修改/etc/init.d/mysqld文件,在start部分找到类似下面这行
$bindir/mysqld_safe –defaults-file=/etc/my.cnf –datadir=$datadir –pid-file=$pid_file >/dev/null 2>&1
修改成下面的这个样子
$bindir/mysqld_safe –defaults-file=/etc/my.cnf –datadir=$datadir –pid-file=$pid_file –bind-address=127.0.0.1 >/dev/null >2&1
注意:对于绑定地址这个参数不要加在–defaults-file参数前...