MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势,国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载、数据库热备等功能。本人在此将如何配置实现做了个简单小结。
服务器配置,具体iP,主从库如下
主库 IP:192.168.1.189 master server 从库 IP:192.168.1.188 slave server
服务器系统为:centos5.6,下载安装软件包具体包括如下
MySQL-client-5.6.13-1.linux_glibc2.5.x86_64.rpm MySQL-devel-5.6.13-1.linux_glibc2.5.x86_64.rpm MySQL-server-5.6.13-1.linux_glibc2.5.x86_64.rpm MySQL-shared-5.6.13-1.linux_glibc2.5.x86_64.rpm MySQL-shared-compat-5.6.13-1.linux_glibc2.5.x86_64.rpm MySQL-test-5.6.13-1.linux_glibc2.5.x86_64.rpm
一、安装mysql,通过yum命令,安装所有所需rpm文件
yum -y install libaio libaio-devel perl-Time-HiRes curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel perl-ExtUtils-MakeMaker perl-DBD-MySQL rpm -ivh MySQL-test-5.6.13-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-shared-5.6.13-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-shared-compat-5.6.13-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-server-5.6.13-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-devel-5.6.13-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-client-5.6.13-1.linux_glibc2.5.x86_64.rpm
二、修改master和slave配置,注意部分参数要根据实际情况来调整,具体步骤如下
主库/etc/my.cnf配置:
[client] port = 3306 socket = /state/partition1/mysql/mysql.sock default-character-set=utf8 [mysqld] server-id=1025 log-bin=mysql-master-bin binlog_format = mixed expire_logs_days=15 max_connections=1000 innodb_flush_log_at_trx_commit=1 sync_binlog=1 binlog-do-db=denovo_ng binlog-ignore-db=mysql,test,information_schema innodb_buffer_pool_size = 46673M skip-name-resolve datadir = /state/partition1/mysql/data port = 3306 socket = /state/partition1/mysql/mysql.sock key_buffer_size=16M max_allowed_packet=16M join_buffer_size = 512M sort_buffer_size = 256M read_rnd_buffer_size = 128M innodb_buffer_pool_size = 40960M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
从库/etc/my.cnf配置,具体代码如下
[client] port = 3306 socket = /state/partition1/mysql/mysql.sock [mysqld] server-id=1052 datadir = /state/partition1/mysql/data port = 3306 socket = /state/partition1/mysql/mysql.sock user=mysql log-bin=mysql-slave-bin max_binlog_size=1000M binlog_format = mixed expire_logs_days=7 innodb_flush_log_at_trx_commit=1 sync_binlog=1 read_only=1 binlog-do-db=denovo_ng binlog-ignore-db=mysql,test,information_schema innodb_buffer_pool_size = 36673M skip-name-resolve max_connections=1000 max_user_connections=490 max_connect_errors=2 key_buffer_size=16M max_allowed_packet=16M join_buffer_size = 512M sort_buffer_size = 256M read_rnd_buffer_size = 128M innodb_buffer_pool_size = 40960M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
三、进行主从库账号授权操作:
主库
grant replication slave on *.* to 'jpsync'@'192.168.1.189' identified by 'jppasswd'; flush privileges; show master status; #查看主库信息
从库
stop slave; change master to master_host='192.168.1.188',master_port=3306,master_user='jpsync',master_password='jppasswd', master_log_file='mysql-master-bin.000003',master_log_pos=408; start slave; show slave statusG;
如果出现
Slave_IO_Running: Yes Slave_SQL_Running: Yes
表明mysql主从库成功。