mysql主从配置

in mysql with 0 comment

其实不复杂,但是前前后后搞了两天才完全搭建测试好。因为懒,拖拖拉拉了,下面简单说一下配置吧。

1.在两台服务器上先装好mysql。一台设为主,一台做从。

具体安装就不细说了。

2.设置主上的配置文件:

#vim /etc/my.cnf

找到server-id =1 和 log-bin=mysql-bin ,将这两行启用,如有注释符,去掉注释符即可。

更改配置文件后,重新启动mysql服务,命令#/etc/init.d/mysql restart

设置root密码mysqladmin -uroot password 'password'

进入mysql下:mysql -uroot -p密码

创建测试数据库,create database db;

授权从数据库:grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123123';

锁表:flush tables with read lock;

show master status;//记住表中的数字编号内容,后面会有用到。

3.设置从上的配置文件:

#vim /etc/my.cnf //找到server-id =1这一行,将值1改成2,或者是跟主的值不一样的其他值。

然后重启mysql。将主上面的测试库db拷贝到从的库里面:

在主数据库所在服务器执行:#mysqldump -uroot -p123456 db > dbbak.sql

#scp -p接端口号 dbbak.sql root@192.168.213.50(从的IP地址):/root

切换到从服务器,#mysql -uroot -p -e "create database db"

# mysql -uroot -p db < dbbak.sql //将刚才备份的数据库导入从数据库中

登录mysql:#mysql -uroot

执行:slave stop;

change master to master_host='192.168.213.32'(主的IP地址),master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=106; //log_file和log_pos分别对应主当中的status中的值

slave start;

切换到主服务器上面:进入mysql,解锁表信息,

#mysql -uroot -p123456

unlock tables;

最后在切换到从服务器,进入MySQL中,执行命令

show slave status\G //在出现的信息中如果slave_IO_running和slave_SQL_running值都为yes则说明成功,有一个值为NO都是失败的

4.测试主从

在主中新建表,删除表,在从中查看相应记录,看是否存在对应。

如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start

Responses