1,首先我们要确定一个从库一个主库,紧记从库只能读取不能有其他的操作,如果操作写那主从就失效了,那就看看我们这么搭建主从吧!
2、 环境:Ubuntu,Mysql (主从的数据库版本必须保持一致)
主服务器地址:192.168.11.186 mysql root密码:1111 数据库:Test
从服务器地址:192.168.11.108 mysql root密码:123
主服务器和从服务器待同步数据库数据须保持一致。
一,配置主库
1.1 更改配置文件sudo vim /etc/mysql/my.cnf在其配置文件中添加主服务器端配置
server-id=1 #服务器 id
log-bin=/var/log/mysql-bin #二进制文件存放路径
binlog-do-db=erp_database #待同步的数据库(erp_database为需要同步的数据库,可以为一个也可以是多个数据库)
binlog-ignore-db=information_schema #忽略不同步的数据库,这个可以不用写
binlog-ignore-db=mysql #忽略不同步的数据库,这个可以不用写
1.2保存my.cnf文件,重启数据库(重启命令: sudo service mysql restart),
1.3 进入终端:
输入用户名和密码:mysql -u用户名 -p密码 ( mysql -uroot –p1111 )
1.4给要连接的从服务器设置权限:
grant replication slave on *.* to aaa@192.168.11.108 identified by '123456'; (这里有一个问题就是你复制的话,要修改这单引号)
给了一个用户之后,进入主数据库给这个用户添加任意权限。
1.5输入命令 show master status; # 找到File 和 Position 的值记录下来;
1.6输入flush logs更新日志文件。(除非连接同步时,否者不建议使用)
其实,主服务器是不需要设置太多信息的,只需要第1条中的前三行就足够了。
二,配置从库:
1,更改配置文件sudo vim /etc/mysql/my.cnf ,在其配置文件中添加从服务器端配置:
server-id=2 #服务器 id ,不能和主服务器一致
replicate-do-db=erp_database #待同步的数据库
binlog-ignore-db=information_schema #忽略不同步的数据库,这个可以不用写
binlog-ignore-db=mysql #忽略不同步的数据库,这个可以不用写
binlog-ignore-db=mysql #忽略不同步的数据库,这个可以不用写
binlog-ignore-db=test #忽略不同步的数据库,这个可以不用写
2.2保存my.cnf文件,重启从数据库。重启命令: sudo service mysql restart
三,从主库导出数据库,然后在把数据导入到从数据库中。
四,二进制文件:
1,在主库中打包转化为txt文件:
mysqlbinlog mysql-bin.000003 > /home/yxp/111.txt
2,然后远程发送到从服务器上,执行111.txt文件,登录mysql ,输入:source 111.txt 把二进制文件补填从库数据。
五,在刷二进制文件的时候,不要退出mysql,输入stop slave;
然后输入:
change master to
master_host="192.168.11.18",
master_user="这是上面给的用户名",
master_password="123456",
master_log_file="mysql-bin.000008", //这点是我们刷最后一个二进制文件
master_log_pos=11034; //最后二进制文件的 at 的最后一个值
六,设置完之后,执行 mysql> start slave; 开启slave线程;执行mysql> show slave statusG (没有分号),查看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这就说明mysql主从配置成功了!!!