最近学习了一下mysql的读写分离配置,当作经验写出来,免得忘记了。
硬件环境:主库在xp系统的机器上,ip是192.168.132.39 ,从库在server 2003机器上,ip是192.168.132.35
mysql版本: 5.0.10a-beta
1. 主数据库配置,在my.ini文件中添加以下语句:
# 主服务器id
server-id=1
# 日志名称
log-bin=mysql-bin
# 需要备份的库
binlog-do-db=taodj
# 忽略的库
# binlog-ignore-db=mytest
2.在主库中创建供从库访问的备份帐号
GRANT replication slave ON *.* TO 'slaveuser'@'192.168.132.35' identified by '123456';
书上说replication slave权限就是可以备份数据库的意思。
3.配置从库my.ini
# 注意:主库id=1,从库server-id=2
server-id=2
log-bin=mysql-bin
# 主库ip
master-host=192.168.132.39
# 主库授权的登录帐号
master-user=slaveuser
master-password=123456
master-port=3306
binlog-do-db=taodj
3.开启主库,执行命令看看file属性的值,因该是mysql-bin.XXX
show master status;
4.打开从库,开启这个命令
slave start;
5.也可以手动执行下这个语句
change master to master_host='192.168.132.39',master_port=3306,master_user='slaveuser',
master_password='123456';
ok,差不多了,测试吧。
6. 如果有问题,在主库上执行以下语句试试:
# 放开所有权限
update user set select_priv='Y' , Insert_priv='Y', Update_priv='Y', delete_priv='Y', Create_priv='Y', Drop_priv='Y',Reload_priv='Y', shutdown_priv='Y', Process_priv='Y', File_priv='Y', Grant_priv='Y', references_priv='Y',Index_priv='Y', Alter_priv='Y', Show_db_priv='Y', Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y', Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y' where user='[username]';
# 在从库服务器上执行,看看能否连通主库
telnet 192.168.132.39 3306;
# 或者
mysql -h 192.168.132.39 -u slaveuser -p;