打开另外一个终端,配置另外一个slave服务器
建立配置文件
xml 代码
- [mysqld]
- datadir=/xxx/mysqlslave1/var
- socket=/xxx/mysqlslave1/mysql.sock
- port=7003
- old_passwords=1
- master-host=127.0.0.1
- master-port=7001
- master-user=repl
- master-password=slavepass
- replicate-do-db=video
- log-warnings
- master-connect-retry = 60
- log-bin=mysql-bin
- server-id=1270000000017003
- log-slave-updates
- [mysqld_safe]
- err-log=/xxx/mysqlslave1/mysqld.log
- pid-file=/xxx/mysqlslave1/var/test2.pid
- [mysql.server]
- user=mysql
- basedir=/xxx
这里需要注意的是,文件里面设置了master服务器的地址、端口、复制的用户名、密码等信息。
运行下面的命令初始化数据目录:
- # mysql_install_db --defaults-file=/xxx/mysqlslave1/my.cnf
- # chown -R mysql.mysql /xxx/mysqlslave1/var
- # cp -ar /xxx/mysqlmaster/var/video /xxx/mysqlslave1/var
这里的cp拷贝命令是在master数据库设计了read-lock之后进行的,所以过程是安全的。下面启动slave库,启用主库到从库的复制:
- # mysqld_safe --defaults-file=/xxx/mysqlslave1/my.cnf &
- # mysql -uroot -S /xxx/mysqlslave1/mysql.sock
- mysql > CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=7001, MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1712;
- mysql > START SLAVE;
这里需要注意的是:MASTER_LOG_POS=1712这里的数字要和master中显示的位置设置的相同
为了检测slave库是否已经和master库进行了同步复制的连接,可以用下面两种方法进行复制,进入到主库的控制台中:
一
- mysql> UNLOCK TABLES;
- mysql> use video;
- mysql> insert into test set name="mars";
这时如果从库中增加了相同的纪录,说明配置已经成功了
二
- mysql > show processlist \G
- *************************** 1. row ***************************
- Id: 3
- User: root
- Host: localhost
- db: video
- Command: Query
- Time: 0
- State: NULL
- Info: show processlist
- *************************** 2. row ***************************
- Id: 4
- User: repl
- Host: localhost:35846
- db: NULL
- Command: Binlog Dump
- Time: 3172
- State: Has sent all binlog to slave; waiting for binlog to be updated
- Info: NULL