时间:2021-07-01 10:21:17 帮助过:16人阅读
一、系统环境: CentOS 5.5 主机(MASTER):192.168.0.10 从机(SLAVE): 192.168.0.20 在slave上yum安装Mysql #yum install
一、系统环境:
CentOS 5.5
主机(MASTER):192.168.0.10
从机(SLAVE): 192.168.0.20
在slave上yum安装Mysql
#yum install -y mysql mysql-server
不要开启mysql服务,将master上的/etc/my.cnf文件内容复制slave上的/etc目录下
#rm -rf /var/lib/mysql -R ''删除从主机上空的mysql数据目录
二、拷贝master上的mysql数据到slave
master上
#vim /etc/my.cnf ''查找mysql数据文件主目录,/var/lib/mysql
#cd /var/lib
#du -h * ''查看mysql数据文件大小
#scp /var/lib/mysql root@192.168.0.2:/var/lib/mysql-r ''将master上mysql数据拷贝到slave上
{
如果数据文件很大,为防止在终端copy过程中出错,可以在远程主机中开启本地终端进行操作
#screen
#scp /var/lib/mysql root@192.168.0.2:/var/lib/mysql -r
}
注意拷贝过来的mysql目录的所属权限 #chown mysql.mysql /var/lib/mysql -R
三、修改配置文件my.cnf
master上
1.配置/etc/my.cnf
#vi /etc/my.cnf
修改[mysqld]
bind-address=192.168.0.10 ''本机内网IP地址
server-id=10 ''ID是唯一的,运维中通常使用内部IP地址的最后一位数字
log-bin=/var/lib/mysql/log/mysql-bin ''制定log目录
binlog-do-db=mysql_db ''需要备份的数据库名,如果备份多个数据库则重复设置这个选项
binlog-ignore-db=xxx ''不需要备份的数据库名。
log-slave-updates ''这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors ‘’跳过错误,,继续执行复制操作
2.建立用户
使用mysql管理员用户进入mysql数据库
Mysql>grant replication slave on *.* to slave@192.168.0.20 identified by ‘123456’;
可在slave上连接测试#mysql –uslave –p123456 –h 192.168.0.10
Mysql>FLUCH TABLES WITH READ LOCK; ‘’锁定主库表
Mysql>SHOW MASTER STATUS;
记录主库信息
slave上
修改配置文件my.cnf
#vi /etc/my.cnf
修改或添加[mysqld]
bind-address=192.168.0.20
server-id=20
log-bin=/var/lib/mysql/log/mysql-bin
master-host=192.168.0.10
master-user=slave
master-password=123456
master-port=3306
replicate-do-db=mysql_db ‘’需要备份的数据库名
replicate-ignore-db=xxx ‘’忽略的数据库
master-connect-retry=60 ‘’如果从服务器发现主服务器断掉,重新连接的时间差(秒)
log-slave-updates ‘’这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors ‘’是跳过错误,继续执行复制操作
#/etc/init.d/mysqld start 启动数据库
Mysql –h192.168.0.10 –usalve –p123456
Mysql>show grants for slave@192.168.0.20;
在slave上设置同步
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.10',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001';
mysql>slave start; ‘’启动slave服务
mysql>show slave status\G; ‘’查看slave状态
其中 Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",表明 Slave 的 I/O 和 SQL 线程都在正常运行。
mysql>UNLOCK TABLES;
到此搭建完毕