为了给项目MySQL数据做一个备份,简单弄了一下:
一,目的
实现项目DBNAME数据库备份,数据库为MySQL,达到主机数据库的任何修改,备份机器都会有相同修改的目的。注意,不要对备份机器数据库进行操作,可能会导致连接失败。
二,设备信息
主机IP:172.20.19.102,从机IP:172.20.19.101。主机和从机的IP地址必须是一个网段的,可以先用从机ping一下主机看是否连通,不连通会导致Slave_IO_Running出现connecting状态而失败。主机MySQL版本:mysql-5.5.20-winx64.msi,密码**********;从机MySQL版本:mysql-5.5.20-win32.msi,密码**********。其它相关软件: SQLyog或者MySQL管理客户端:Navicat 8 for MySQL(Windows)——有些人用来做权限控制,本次可以不用。
三,配置主机【master】(IP:172.20.19.102)
1.在mysql安装路径下找到配置文件my.ini文件,记得先备份原来的配置文件。在文件末尾加入下面的代码:
server-id=11#配一个唯一的ID编号
log-bin=mysql-bin#指定日志类型
binlog-do-db=DBNAME#设置要进行主从复制的数据库名,同时也要在从机【Slave】上设定(同步多个另起一行输入这行代码)
binlog-ignore-db=#设置不要进行主从复制的数据库名,同时也要在【Slave】上设定(不同步多个另起一行输入这行代码即可),此处咱们不设置。
2.重启动mysql服务
3.打开MySQL5.5 Command Line Client命令窗口,输入数据库密码,然后输入:grant replication slave on *.* to ‘backup’@‘172.20.19.101’identified by ‘**********’;( grant replication slave on*.* to slaveuser@从机IP(例:192.168.1.101) identified by '从机数据库密码') ; 回车后显示Query OK…表示成功。继续输入:flush privileges; 回车后显示Query OK…表示成功。继续输入:show master status; 按回车,显示File、Position、Binlog_Do_DB、Binlog_Ignore_DB等字段,记住出现的表格中的File列和Position的值。
4.进入MySQL管理客户端:Navicat 8 for MySQL(Windows)。点击菜单栏用户,右侧显示你刚才创建backup@172.20.19.101的用户,选中该用户。点击编辑用户链接。弹出窗口,再选择权限,将所有权限都选上保存,这样主机就配置好了——这一步也可以不要。
重启一下MySQL服务。
四,配置从机【slave】(Ip:172.20.19.101)
1. 在mysql安装路径下找到配置文件my.ini文件,记得先备份原来的配置文件。然后在文件末尾加入下面的代码:
server-id=12#配一个唯一的ID编号,不能与主机和其他的从机相同
replicate-do-db=DBNAME#设置要进行主从复制的数据库名,数据库名与主机相同
replicate-ignore-db=#设置不要进行主从复制的数据库名,数据库名与主机相同,此处咱们不设置。
2. 重启动mysql服务
3. 从MySQL 5.5 Command Line Client命令窗口登录数据库。在该命令窗口输入:change master to master_host=’172.20.19.102’,master_user=’root’, master_password=’**********’, master_log_file=’mysql-bin.000001’,master_log_pos=107;(change master to master_host='主机IP(192.168.1.100)',master_user='主机数据库用户名(例:root)',master_passwore='主机数据库密码',master_log_file='配置主机时记录的File值',master_log_pos=配置主机时记录的Position值),按回车,如果代码没打错的话就会出现QueryOk等字样.继续输入:start slave; 按回车也会出现Query OK
字样。表示成功了。继续输入:show slave status\G; 会出现一个列表:如果其中的Slave_IO_Running和Slave_SQL_Running处都显示Yes,就表明没有什么问题了, 主从关系已经设置成功。
注意:如果出现Slave_IO_Running:connecting,有可能是从机访问不到主机,可能是防火墙没有关闭;如果出现Slave_SQL_Running:connecting的现象,有可能是主机没有给从机用户充分的授权。
如果主服务器有历史数据,应该先导入到从服务器。