备份主服务器原有数据到从服务器
1. 如果在设置主从同步前,主服务器上已有大量数据,可以使用 mysqldump 进 行数据备份并还原到从服务器以实现数据的复制
cd ~/Desktop/ mysqldump -uroot -pmysql --all-databases --lock-all-tables > ./master_db.sql ls
-u :用户名 -p :示密码 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090 --all-databases :导出所有数据库 --lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改 ~./master_db.sql :导出的备份数据(sql 文件)位置,可自己指定.
2. 在从服务器 Windows 上进行数据还原
找到 Windows 上 mysql 命令的位置
新打开的命令窗口,在这个窗口中可以执行类似在 Ubuntu 终端中执行的 mysql 命令。
将从主服务器 Ubuntu 中导出的文件复制到从服务器 Windows 中,可以将 其放在上面 mysql 命令所在的文件夹中,方便还原使用。
在刚打开的命令黑窗口中执行还原操作:
mysql -uroot -pmysql < master_db.sql
mysql -uroot -pmysql show databases;
配置主服务器 master(Ubuntu 中的 MySQL)
编辑设置 mysqld 的配置文件,设置 log_bin 和 server-id
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
把配置文件中的 server-id和下面log_bin的注释去掉
然后把默认的只能链接本机的 注释 # bin-adress 127.0.0.1
, shift+:x退出
重启 mysql 服务
sudo service mysql restart
登入主服务器 Ubuntu 中的 mysql,创建用于从服务器同步数据使用的帐号
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave'; FLUSH PRIVILEGES;
获取主服务器的二进制日志信息
show master status;
File 为使用的日志文件名字,Position 为使用的文件位置,这两个参数 须记下,配置从服务器时会用到。
配置从服务器 slave(Windows 中的 MySQL)
找到 Windows 中 MySQL 的配置文件
编辑 my.ini 文件,将 server-id 修改为 2,默认的是1并保存退出。
可以在开始菜单中输入 services.msc 找到并运行。
在打开的服务管理中找到 MySQL57,并重启该服务
进入 windows 的 mysql,设置连接到 master 主服务器
mysql -uroot -p
如果以前执行过配置的话要停止
stop slave
设置连接到 master 主服务器、
change master to master_host='192.168.228.133', master_user='slave', master_password='slave',master_log_file='mysql-bin.000006', master_log_pos=2060 ;
master_host:主服务器 Ubuntu 的 ip 地址 master_log_file: 前面查询到的主服务器日志文件名 master_log_pos: 前面查询到的主服务器日志文件位置
开启同步,查看同步状态
start slave
show slave status \G
测试主从同步
在 Ubuntu 的 MySQL 中(主服务器)创建一个数据库
create database dailyfresh_13 default charset=utf8; show databases;
在 Windows 的 MySQL 中(从服务器)查看新建的数据库是否存在。
show databases;