为mysql的安装提供前提环境和初始化安装mysql 创建数据库目录 # mkdir /mydata/data –pv 创建mysq用户 # useradd -r mysql 修改权限 # chown -R mysql.mysql /mydata/data/ 使用mysql-5.5通用二进制包安装 解压mysql软件包 # tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/ 创建连接,为了方便查看mysql的版本等信息 # cd /usr/local/ #ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql 修改属主属组 # cd mysql # chown -R root.mysql ./* 初始化数据库 # scripts/mysql_install_db –user=mysql --datadir=/mydata/data/ 提供配置文件 # cp support-files/my-large.cnf /etc/my.cnf 提供服务脚本 # cp support-files/mysql.server/etc/rc.d/init.d/mysqld 添加至服务列表 # chkconfig --add mysqld # chkconfig --list mysqld # chkconfig mysqld on 编辑配置文件,提供数据目录 # vim /etc/my.cnf # The MySQL server 修改mysqld服务器端的内容 log-bin=master-bin 主服务器二进制日志文件前缀名 log-bin-index=master-bin.index 索引文件 innodb_file_per_table= 1 开启innodb的一表一个文件的设置 server-id = 1 必须是唯一的 datadir =/mydata/data 数据目录路径 启动mysql服务 # servicemysqld start 为了便于下面的测试,设置环境变量 # vim/etc/profile.d/mysql.sh export PATH=$PATH:/usr/local/mysql/bin 执行环境变量脚本,使其立即生效 # . /etc/profile.d/mysql.sh
建立用户账户 mysql> grant replication slave on *.* to 'chris'@'172.16.%.%' identified by 'work'; 刷新数据使其生效 mysql> flush privileges;
创建mysql数据库目录 # mkdir /mydata/data –pv 创建mysql用户 # useradd -r mysql 修改数据目录权限 # chown -R mysql.mysql /mydata/data/ 使用mysql-5.5通用二进制包安装mysql 解压mysql软件包 # tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/ 创建连接,便于查看mysql的版本等信息 # cd /usr/local/ # ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql 修改mysql属主属组 # cd mysql # chown -R root.mysql ./* 初始化mysql数据库 # scripts/mysql_install_db –user=mysql--datadir=/mydata/data/ 提供mysql配置文件 # cp support-files/my-large.cnf /etc/my.cnf 提供服务脚本 # cp support-files/mysql.server /etc/init.d/mysqld 添加至服务列表 # chkconfig --add mysqld 编辑配置文件 # vim /etc/my.cnf # The MySQL server #log-bin=mysql-bin 禁用二进制日志,从服务器不需要二进制日志文件 datadir = /mydata/data mysql的数据目录 relay-log = relay-log 设置中继日志 relay-log-index = relay-log.index 中继日志索引 innodb_file_per_table = 1 server-id = 2 id不要和主服务器的一样 设置环境变量 # vim/etc/profile.d/mysql.sh export PATH=$PATH:/usr/local/mysql/bin 执行此脚本(导出环境变量) # . /etc/profile.d/mysql.sh 启动服务 # service mysqld start
安装插件:mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; 启动模块:mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1; 设置超时时间:mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;
1
2
3
4
|
slave:
安装插件:msyql> INSTALL PLUGIN rpl_semi_sync_slave SONAME
'semisync_slave.so'
;
启动模块:mysql> SET GLOBAL rpl_semi_sync_slave_enabled =
1
;
重启进程使其模块生效:mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
|
在Master和Slave的my.cnf中编辑: # On Master [mysqld] rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=1000 #此单位是毫秒 # On Slave [mysqld] rpl_semi_sync_slave_enabled=1
# 主服务器上 [mysqld] server-id = 1 log-bin = mysql-bin relay-log = relay-mysql relay-log-index = relay-mysql.index auto-increment-increment = 2 #每次跳两个数。 auto-increment-offset = 1 #从1开始。
[mysqld] server-id = 2 log-bin = mysql-bin relay-log = relay-mysql relay-log-index = relay-mysql.index auto-increment-increment = 2 auto-increment-offset = 2
master:查看日志文件信息 mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | | | +------------------+----------+--------------+------------------+ Slave:查看服务器日志文件信息 mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
1
2
3
|
master:
mysql> GRANT REPLICATION SLAVE ON *.* TO
'chrislee'
@
'172.16.%.%'
IDENTIFIED BY
'work'
;
mysql> flush privileges;
|
slave: mysql> GRANT REPLICATION SLAVE ON *.* TO 'chrisli'@'172.16.%.%' IDENTIFIED BY 'work'; mysql> flush privileges
server1 mysql> CHANGE MASTER TO MASTER_HOST='172.16.7.2',MASTER_USER='chrisli',MASTER_PASSWORD='work',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=344;
server2: mysql> CHANGE MASTER TO MASTER_HOST='172.16.7.1',MASTER_USER='chrislee',MASTER_PASSWORD='work',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=345;