********************************************************************************************
mysql 5.1.34 主从复制部署手册
********************************************************************************************
概述:
下文描述了,mysql的详细安装方法(mysql5.1.34.tar.gz)、基本配置、
mysql主从同步配置的详细操作步骤
--------------------------------------------------------------------------------------------
[1] 安装mysql
--------------------------------------------------------------------------------------------
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < mysql-5.1.34-linux-i686-glibc23.tar.gz | tar xvf -
shell> ln -s mysql-5.1.34-linux-i686-glibc23 mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> cd /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
--------------------------------------------------------------------------------------------
[2] 修改mysql root密码
--------------------------------------------------------------------------------------------
shell> /usr/local/mysql/bin/mysqladmin -u root password 'founder'
--------------------------------------------------------------------------------------------
[3] 设定mysql开机自启动及安装mysql服务
--------------------------------------------------------------------------------------------
shell> cd /usr/local/mysql
shell> cp support-files/mysql.server /etc/init.d/mysql
shell> chmod +x /etc/init.d/mysql
shell> chkconfig --level 345 mysql on
shell> service mysql restart
执行命令后显示结果如下
Shutting down MySQL.[ 确定 ]
Starting MySQL[ 确定 ]
--------------------------------------------------------------------------------------------
[4] 修改mysql 不区分大小写设置
--------------------------------------------------------------------------------------------
vi /etc/my.cnf
在mysqld下写如下内容
lower_case_table_names=1
修改完毕后重启mysql
shell> service mysql restart
--------------------------------------------------------------------------------------------
[5] 设置master 数据库
--------------------------------------------------------------------------------------------
vi /etc/my.cnf
在[mysqld] 中增加如下内容
server-id = 1
log-bin=mysql-bin
binlog-do-db=test # 需要同步备份的数据库名字
binlog-ignore-db=mysql # 不需要同步备份的数据库名字
修改完毕后保存退出,并重启mysql
shell> service mysql restart
备注说明:
在my.cnf已经默认存在,如果不存在,再填写如下内容
server-id = 1
log-bin=mysql-bin
--------------------------------------------------------------------------------------------
[6] 在master数据库中设置slave(从)数据库的账号信息
--------------------------------------------------------------------------------------------
mysql> mysql -u root -pfounder
mysql> GRANT REPLICATION SLAVE ON *.*
TO 'slave1'@'10.1.2.130' IDENTIFIED BY '8uhb&YGV';
GRANT REPLICATION SLAVE ON *.*
TO 'slave2'@'10.1.2.131' IDENTIFIED BY '8uhb&YGV';
mysql> flush privileges;
mysql> commit;
备注说明:
上述设置了两台slave(从)数据库的账号信息,如果您只有一台从数据库
只需要执行一条语句。
上述语句的含义
grant replication slave on *.* to ‘用户名’@'从注册的ip’ identified by ‘密码’;
--------------------------------------------------------------------------------------------
[7] 从数据库的配置
--------------------------------------------------------------------------------------------
按照[1][2][3][4]步骤安装并配置mysql数据库配置完毕后执行如下操作
shell> vi /etc/my.cnf
在[mysqld] 下填写如下内容
server-id = 2 #任意制定的一个整形的id号
master-host=10.1.2.129 #[1] 中安装的主服务器的ip地址
master-user=slave1 #[6] 中设置的从服务器可以访问到主服务器的用户名
master-password=8uhb&YGV
master-port=3306
replicate-do-db=test #[5] 中设置的需要同步复制的数据库的名字
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
配置完毕后保存退出,并重启mysql
shell> service mysql restart
重启无误后,执行[8] 查看主从是否配置成功
--------------------------------------------------------------------------------------------
[8] 检验配置是否成功
--------------------------------------------------------------------------------------------
登录从服务器输入如下命令:
mysql> show slave status\G;
确认如下行一致:
Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
还有另外一种检验方法
在主数据库中的test库中新建一个表,此时到从数据库中查看主从库表的数据是否一致
若一致恭喜您配置成功了!
--------------------------------------------------------------------------------------------
[9] 注意事项
--------------------------------------------------------------------------------------------
修改配置需要注意
需要删除从服务器上的/var/lib/mysql/master.info文件
--------------------------------------------------------------------------------------------
[10] 与主从相关的命令有如下,希望能给您提供帮助
--------------------------------------------------------------------------------------------
***********************************************
* 主数据库 *
***********************************************
show master status
show slave hosts
show logs
show binlog events
purge logs to ‘log_name’
purge logs before ‘date’
reset master(老版本flush master)
set sql_log_bin= path
***********************************************
* 从数据库 *
***********************************************
slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before 'date'] 删除master端已同步过的日志
mysql 5.1.34 主从复制部署手册
********************************************************************************************
概述:
下文描述了,mysql的详细安装方法(mysql5.1.34.tar.gz)、基本配置、
mysql主从同步配置的详细操作步骤
--------------------------------------------------------------------------------------------
[1] 安装mysql
--------------------------------------------------------------------------------------------
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < mysql-5.1.34-linux-i686-glibc23.tar.gz | tar xvf -
shell> ln -s mysql-5.1.34-linux-i686-glibc23 mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> cd /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
--------------------------------------------------------------------------------------------
[2] 修改mysql root密码
--------------------------------------------------------------------------------------------
shell> /usr/local/mysql/bin/mysqladmin -u root password 'founder'
--------------------------------------------------------------------------------------------
[3] 设定mysql开机自启动及安装mysql服务
--------------------------------------------------------------------------------------------
shell> cd /usr/local/mysql
shell> cp support-files/mysql.server /etc/init.d/mysql
shell> chmod +x /etc/init.d/mysql
shell> chkconfig --level 345 mysql on
shell> service mysql restart
执行命令后显示结果如下
Shutting down MySQL.[ 确定 ]
Starting MySQL[ 确定 ]
--------------------------------------------------------------------------------------------
[4] 修改mysql 不区分大小写设置
--------------------------------------------------------------------------------------------
vi /etc/my.cnf
在mysqld下写如下内容
lower_case_table_names=1
修改完毕后重启mysql
shell> service mysql restart
--------------------------------------------------------------------------------------------
[5] 设置master 数据库
--------------------------------------------------------------------------------------------
vi /etc/my.cnf
在[mysqld] 中增加如下内容
server-id = 1
log-bin=mysql-bin
binlog-do-db=test # 需要同步备份的数据库名字
binlog-ignore-db=mysql # 不需要同步备份的数据库名字
修改完毕后保存退出,并重启mysql
shell> service mysql restart
备注说明:
在my.cnf已经默认存在,如果不存在,再填写如下内容
server-id = 1
log-bin=mysql-bin
--------------------------------------------------------------------------------------------
[6] 在master数据库中设置slave(从)数据库的账号信息
--------------------------------------------------------------------------------------------
mysql> mysql -u root -pfounder
mysql> GRANT REPLICATION SLAVE ON *.*
TO 'slave1'@'10.1.2.130' IDENTIFIED BY '8uhb&YGV';
GRANT REPLICATION SLAVE ON *.*
TO 'slave2'@'10.1.2.131' IDENTIFIED BY '8uhb&YGV';
mysql> flush privileges;
mysql> commit;
备注说明:
上述设置了两台slave(从)数据库的账号信息,如果您只有一台从数据库
只需要执行一条语句。
上述语句的含义
grant replication slave on *.* to ‘用户名’@'从注册的ip’ identified by ‘密码’;
--------------------------------------------------------------------------------------------
[7] 从数据库的配置
--------------------------------------------------------------------------------------------
按照[1][2][3][4]步骤安装并配置mysql数据库配置完毕后执行如下操作
shell> vi /etc/my.cnf
在[mysqld] 下填写如下内容
server-id = 2 #任意制定的一个整形的id号
master-host=10.1.2.129 #[1] 中安装的主服务器的ip地址
master-user=slave1 #[6] 中设置的从服务器可以访问到主服务器的用户名
master-password=8uhb&YGV
master-port=3306
replicate-do-db=test #[5] 中设置的需要同步复制的数据库的名字
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
配置完毕后保存退出,并重启mysql
shell> service mysql restart
重启无误后,执行[8] 查看主从是否配置成功
--------------------------------------------------------------------------------------------
[8] 检验配置是否成功
--------------------------------------------------------------------------------------------
登录从服务器输入如下命令:
mysql> show slave status\G;
确认如下行一致:
Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
还有另外一种检验方法
在主数据库中的test库中新建一个表,此时到从数据库中查看主从库表的数据是否一致
若一致恭喜您配置成功了!
--------------------------------------------------------------------------------------------
[9] 注意事项
--------------------------------------------------------------------------------------------
修改配置需要注意
需要删除从服务器上的/var/lib/mysql/master.info文件
--------------------------------------------------------------------------------------------
[10] 与主从相关的命令有如下,希望能给您提供帮助
--------------------------------------------------------------------------------------------
***********************************************
* 主数据库 *
***********************************************
show master status
show slave hosts
show logs
show binlog events
purge logs to ‘log_name’
purge logs before ‘date’
reset master(老版本flush master)
set sql_log_bin= path
***********************************************
* 从数据库 *
***********************************************
slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before 'date'] 删除master端已同步过的日志