Mysql 主从复制

Mysql 主从复制
 
 
环境
        系统:centos7.2
                  mysql : 5.5.48
        主库:
                47.52.194.*(公)
                172.31.93.*(私有)
        从库:
                60.205.229.*(公)
                172.17.108.*(私有)
搭建主库
1、修改mysql配置文件 /etc/my.cnf(编辑:vi  /etc/my.cnf),这部分一定要配置在[mysqld]后面

server-id=1   #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog-do-db=elp  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog-ignore-db=mysql   #不同步mysql系统数据库

2、重启mysql
登录数据库,进入主库之后给主数据库授权一个可以进行复制的账号
grant replication slave on *.* to '58coinck'@'60.205.229.*' identified by 'jxkshu';
 
3、查看用户是否创建成果
 select Host,User ,Password      from user where 1;
 
4、查看my.cnf中配置的server-id是否成功
        show variables like 'server_id';
         
 
5、 查看主库信息这些信息要用
      show master status;
      
 
6、将主库暂停,将数据库导出来,迁到从库,保证主库和从库两边的数据库一致
 
 
二、搭建从库
 
1、修改从库里mysql配置文件 /etc/my.cnf  (编辑命令:vi  /etc/my.cnf),这部分一定要配置在[mysqld]后面
server-id=2   #设置服务器id,为2表示从服务器(也可以为其他值),注意:如果原来的配置文件中已经有这一行,就不用再 添加了。
   wq;   #保存;
 
2、重启mysql,并查看是否配置成功
        
3、登录到从库的数据库,做同步设置(此处要用到上面5)中记录的数据)
slave stop;   //关闭库服务
change master to master_host='47.52.194.*',  //ip为主库ip地址
master_port=3306, //主库端口号
master_user='58coinck',                   //主库设置的同步账号
master_password='Lzf_********018', //主库设置的同步账号密码
master_log_file='mysql-bin.000005',// show master status;  里的File
master_log_pos=5391;               //show master status;  里的Position
slave start; //开启库服务
       
 
4、测试同步结果
       在主库新建一张test表,看下从库是否相应的生成对应的test表,如果生成,哪说明配置成功
       
 
5、查看同步状态
          show slave status G;
             
备注
 
用户权限
    GRANT ALL PRIVILEGES ON *.* TO '58coin'@'%' IDENTIFIED BY PASSWORD '*47EADFF3134CED9A0892A238F5E4A046C9F92480' WITH GRANT OPTION
 •all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
 •on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
 •to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
 •identified by:指定用户的登录密码
 •with grant option:表示允许用户将自己的权限授权给其它用户 
 
可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。 
 
查看用户权限
     show grants for username;   
删除用户
    drop user username;
刷新权限
    flush privileges;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/jxkshu/p/8666027.html