mysql主从配置

最近学习了一下mysql主从服务配置,中间踩过了一些坑,所以在这里做下总结,方便以后查阅。

因为我使用的是虚拟机,所以这里的配置是基于2个Ubuntu 16.04 64位系统进行配置的。

主机IP为:192.168.199.199 从机IP为:192.168.199.217

具体步骤如下:

  1. 主机需要开启二进制文件记录,配置独立的id编号,并且修改为任何其他的主机都可以访问。
    -- 在终端输入这个命令:vi /etc/mysql/mysql.conf.d/mysqld.cnf,因为这个文件默认是只读的,你需要事先修该成可读写的,具体指令为:chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf,然后把这个文件里面的server-id和log_bin两行开启,然后把 bind-address注释掉,以便其他的主机都可以访问,然后保存这个文件,最后切记要把这个文件的权限改成和原来的权限一样的,不然这个配置文件不生效。然后重启下mysql:sudo service mysql restart
    -- 从机配置:
    打开配置文件的方式和主机是一样的,然后只需要修改下server-id为2即可,然后也需要修改文件权限,重启mysql。
  2. 将主服务的数据备份到从服务器。
    在主机终端输入此命令:mysqldump -uroot -pcz --all-databases --lock-all-tables > ~/Desktop/master_db.sql,用于把主机的所有数据库备份到桌面。
  3. 远程拷贝,把主机备份的数据拷贝到从机的桌面。
    scp Desktop/master_db.sql [email protected]:/home/python/Desktop
  4. 在从机完成数据的恢复,在从机终端输入该指令,这个密码需要的是主机的密码,这个指令需要手动敲,不然恢复不成功。
    mysql –uroot –pcz < ~/Desktop/master_db.sql
  5. 登录主机服务, 创建一个账户, 让所有的从机都能够使用这个账户登录到主机, 完成数据的复制。
    GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';输入该指令后需要刷新权限:FLUSH PRIVILEGES;
  6. 记录主机的基本信息:SHOW MASTER STATUS;
    -- 注意:如果mysql配置文件的权限没有恢复成原来的,会有警告:mysql: [Warning] World-writable config file '/etc/mysql/mysql.conf.d/mysqld.cnf' is ignored.表示把这个文件被忽略了,也就是你修改的配置文件并没有生效。
    正常输入此指令会显示日志文件的名字和位置,记录下来,等下会用到。
  7. 在从服务器中设置 需要隶属于哪一个主机
    change master to master_host='192.168.199.199', master_user='slave', master_password='slave',master_log_file='mysql-bin.000003', master_log_pos=741; 注意:如果已经开启了主从复制, 会报错,此时需要停止主从复制: stop slave;然后再开启主从复制:start slave;
  8. 如何验证主从配置已经成功,在从机终端输入: show slave status\G;,如果IO Running和sql Running同时都是yes就表示主从配置成功。
  9. 最后测试下主从同步。
    在主机mysql里面新建一个数据库,然后在从机mysql查看是否新增了一个数据库。

你可能感兴趣的:(mysql主从配置)