前提条件:
1、主数据库是使用CentOS7.0操作系统,安装了MariaDB数据库(安装数据库请参考 http://blog.csdn.net/mfkfkulkwxf/article/details/51686121)
2、从数据库是使用Windows10操作系统,安装了MySQL数据库(Windows下的数据库安装请自行上网搜索)
主从数据库设置步骤如下:
1、设置主数据库的配置文件:
在/etc/my.cnf文件中,加上
server-id=1 #数据库的唯一ID号,默认以1开始
log-bin=mysql-bin #启用二进制日志
配置后的结果如下图中的红色框:
2、在主数据库建立账户并授权从数据库访问:
在命令行中录入 grant replication slave on *.* to 'root'@'%' identified by '12345678'; 如下图
在这里需要注意以下几点:
1)我是使用root用户进行测试,在生产环境中是不建议使用的,必须自己重新创建一个新用户进行登录,
2) %表示允许所有的IP访问,可以自己设置只允许哪些IP访问,如把%替换为192.168.1.3表示只允许这个IP访问
3、重新启动MariaDB数据库
在命令行录入 systemctl restart mariadb ,如下图:
4、检查主数据库的master状态:
在命令行录入 show master status; 如下图:
请记下File与Position的数据,为从数据库作准备.
5、设置从数据库的配置文件:
打开my.ini配置文件(如不知道配置文件位置,请自行上网查找),添加以下两句:
log-bin=mysql-bin
server-id=2
效果如下图:
6、重启从数据库
7、使用从数据库命令行方式配置:
打开命令行,并登录到从数据库的MySQL.
录入以下命令 change master to master_host='192.168.137.101',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=245; 效果如下图:
请注意以下几点:
1)master_host是指主服务器的IP
2)master_user是指使用哪个用户登录主服务器
3)master_password是指登录密码
4)master_log_file是指在第4个步骤中的File名称
5)master_log_pos是指在第4个步骤中的Position
8、启用从数据库复制功能(这个步骤是在从数据库的MySQL中配置)
在命令行中录入 start slave;
9、查看从数据库的复制功能状态
在命令中录入 show slave status\G; 结果显示如下:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.137.101 #主数据库地址
Master_User: root #使用哪个用户登录
Master_Port: 3306 #连接端口
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 245 #同步读取二进制日志的位置,必须大于或等于下面的Exec_Master_Log_Pos数据
Relay_Log_File: PC201501300933-relay-bin.000002
Relay_Log_Pos: 391
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes #必须为Yes,否则需要查找原因
Slave_SQL_Running: Yes #必须为Yes,否则需要查找原因
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 245
Relay_Log_Space: 556
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
10、然后在主数据库中创建数据库、表、插入/删除/更新数据等操作,在从数据库中查看相关的变化。请一定要关闭防火墙,否则导致数据复制不成功。
附:在查看其他的文章中,有关于其他从数据库的配置,如下:
在从服务器数据库配置文件:
server-id = 2
master-host = 192.168.137.101
master-user = root
master-password = 12345678
replicate-do-db = test_master_slave #指定只允许某个数据库复制功能
master-port = 3306
log-bin = mysql-bin
如果是使用以上的配置,则在我写的第5个步骤中不执行我写的内容,而是执行以上的配置;并且也不执行第7个步骤。