> 数据库 > MySQL >

配置mysql-5.1.35 主从复制

首先,下载mysql-5.1.35.tar.gz。
然后,安装mysql。
 

复制代码代码如下:
# tar mysql-5.1.35.tar.gz
# cd mysql-5.1.35
# ./configure --prefix=/usr/local/mysql --with-extra-charset=all --with-collation=utf8_swedish_ci --with-charset=utf8 -with-mysqld-ldflags=-all-static --without-debug --enable-assembler --with-mysqld-user=mysql
# make && make install
# chown -R mysql:mysql /usr/local/mysql
# /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --user=mysql
# cp ./support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysqld_safe --user=mysql &

master-database-server
在my.cnf中加入
server-id             = 1
log-bin=mysql-bin #二进制形式存储日志
binlog-do-db=test #可以同步的数据库,多库可以多行设置
binlog-do-db=test2

进入mysql,并查看master
mysql -uroot -p
设置从机权限(添加从机数据同步的帐号和密码)
grant replication slave on *.* to identified by 'wode123456';
创建需要同步的数据表
use test;
create table user(id int);

因为需要将基本的数据备份给从机,为避免错误发生,所以需要锁定表
flush tables with read lock;
exit;
mysqldump -uroot -p test > test.sql
然后再次进去mysql,解锁,这步细节一定要做,因为不解锁,那么从机无法同步数据了。
unlock tables;

然后查看日志id:
mysql> show master status;
+------------------+----------+-----------------------+------------------+
| File             | Position | Binlog_Do_DB          | Binlog_Ignore_DB |
+------------------+----------+-----------------------+------------------+
| mysql-bin.000001 |      819 | dedecms204,dedecms206 |                  |
+------------------+----------+-----------------------+------------------+

slave-database-server

复制代码代码如下:

# vim /etc/my.cnf
server-id=2
replicate-do-db=test #允许同步的数据库,多库可以多行设置
replicate-do-db=test2
master-connect-retry=30
log-bin=mysql-bin
master-host=192.168.0.209 #主机地址
master-user=readone #主机用户名
#主机密码
master-port=3306
read-only=1 #只允许读操作

进入从机mysql
mysql -uroot -p
导入之前从主机导出的数据库test,
use test;
source /home/databack/test.sql;

添加master相关信息

复制代码代码如下:
change master to master_user='readone'; #帐号
change master to master_password='readone'; #密码
change master to master_host='192.168.1.11'; #地址
change master to master_log_file='mysql-bin.000001'; #注意,这个是之前show master status;里得到的。
change master to master_log_pos=98; #这个是之前show master status;里得到的。

start slave; #启动从模式
mysql> show slave status \G #查看其状态

以下两项都为yes是从机配置成功的标志。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes



(责任编辑:IT)