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;
.png)

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; 里的Filemaster_log_pos=5391; //show master status; 里的Positionslave 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;