1、首先window10系统安装VMware Workstation虚拟
2、在虚拟机安装ubuntu操作系统,选择系统镜像文件,设置网络:桥接模式,复制物理网络连接状态
3、配置ssh服务sudo apt-get install openssh-sever
4、安装Mysql数据库sudo apt-get install mysql-server,安装过程中设置root用户加密码,登录mysql:mysql -uuname -ppassword
vi /etc/mysql/mysql.conf.d/mysqld.cnf 注释掉bind-address = 127.0.0.1:
登录mysql后授权:
grant all on *.* to root@'%' identified by '你的密码' with grant option;
flush privileges;
service mysql restart;重启mysql服务;
5、主从数据库配置:
主库:修改主库配置 server-id、log_bin开启bin_log,binlog-do-db指定binlog日志记录哪个db,binlog-ignore-db不需要备份的数据库;多个用逗号分隔
重启服务:service mysql restart
从库:修改server-id,数据库唯一标识,service mysql restart
主库与从库之间通信:
主库创建账号并授权:
CREATE USER 'repl'@'192.168.0.103' IDENTIFIED BY 'slavepass';#创建用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.103';#分配权限
flush privileges; #刷新权限
SHOW MASTER STATUS; #查看master状态 --记下文件名'mysql-bin.000005'和位置'154'
从库:mysql执行
CHANGE MASTER TO
MASTER_HOST='192.168.0.102',
MASTER_USER='root',
MASTER_PASSWORD='mysql',
MASTER_LOG_FILE='mysql-bin.000011',
MASTER_LOG_POS=1251;
启动从库复制线程:start slave;
查看复制状态:show slave status\G
出现两个YES即说明mysql主从数据设置成功
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
总结:主从数据库同步原理
MySQL之间数据复制的基础是二进制日志文件(binary log file),主库一旦启用二进制日志,其所有的操作都会以事件的方式记录在二进制日志中,其他从库slave通过一个I/O线程与主服务器保持通信,监控master的二进制日志,把变化同步到中继日志中,然后slave的一个SQL线程会把相关的事件执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。