Mariadb介绍:
mariadb是mysql的一个分支,需要进一步了解的参考:https://mariadb.org/
安装参考教程:window版安装:Mariadb 介绍 1 (安装)
linux版安装 :centos7 yum安装mysql | mariaDb
补充: mysql的主从复制(master-slave),我就以mariadb来进行演示了
Mariadb主从复制:
1> 基本原理:
MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。
2> 实现MySQL主从复制需要进行的配置:
1> 准备两台服务器
master 192.168.248,147 /linux (centos7)
slave 192.168.248.148 /linux (centos7)
centos7 安装mariadb后,默认无密码登录 1> mysql -uroot -p 回车 2> use mysql; 切换到mysql数据库 3> update user set password=password("自定义密码") where user='root'; 4> flush privileges; 刷新生效
2> 配置主服务器 (147 服务器)
1> 修改配置文件: [mysqld] log-bin=mysql-bin #开启二进制日志 server-id=1 #设置server-id
2> 重启mysql,创建用于同步的用户账号 mysql> CREATE USER 'huhy'@'192.168.248.147' IDENTIFIED BY 'huhy';#创建用户 mysql> GRANT REPLICATION SLAVE ON *.* TO 'huhy'@'192.168.248.147';#分配权限 mysql>flush privileges; #刷新权限 3> 查看master状态,记录二进制文件名(mysql-bin.000001)和位置(569): SHOW MASTER STATUS;
3>从服务器slave修改:
从服务器配置: 1>my.cnf配置文件,添加server-id [mysqld] server-id=2 #设置server-id,必须唯一
2>重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置): CHANGE MASTER TO MASTER_HOST='192.168.248.147',MASTER_USER='huhy',MASTER_PASSWORD='huhy', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=569;
3> 启动同步进程:
start slave; 【stop slave】
4> 查看slave状态:
show slave statusG;
注意:这个当其中两个都是yes的时候代码同步开启成功。
问题:这个可能会出现个问题, Slave_IO_Running: Connecting 连接问题: 如下:
产生这个问题的原因是我们创建的同步用户无法进行远程连接,从服务器无法连接到主服务器:
grant all privileges on *.* to huhy@'%'identified by 'huhy'; 授权后即可
flush privileges; 刷新权限
执行后即可完成同步
补充:可以再my.cnf中设置同步哪些数据库:
# 不同步哪些数据库 binlog-ignore-db = mysql # 只同步哪些数据库,除此之外,其他不同步 binlog-do-db = test
测试:
到这mysql的主从复制已经搞好了,有不理解的可以一起讨论