目录
(一)安装两个虚拟机作为服务器,后面的步骤会设置成一主一从。
关闭防火墙和selinux后互ping ip地址要能ping通
主数据库安装mariadb,最好切换到/opt下执行yum -y install mariadb mariadb-server
从数据库安装mariadb同理,最好切换到/opt下执行yum -y install mariadb mariadb-server
(三)模拟主从服务器同步django项目数据库中的所有表结构和内容
注意:表结构不能同步更新,只有表内容可以,要想更新表结构,主从库都要手动更新
(四)到此为止主从服务器中mysql都有OurBlog数据库了,且内容一致,第五步就是把主从服务器配置成整体,主服务器被写入数据,从服务器也会相应更新。
(一)安装两个虚拟机作为服务器,后面的步骤会设置成一主一从。
关闭防火墙和selinux后互ping ip地址要能ping通
(二)主从服务器都安装mariadb数据库
主数据库安装mariadb,最好切换到/opt下执行yum -y install mariadb mariadb-server
(1)安装Mariadb
最好切换到/opt下执行yum -y install mariadb mariadb-server (我这里在根目录了不推荐)
(2)重启mariadb,无密码进入(不要打成 mysql -uroot -p ,会出现权限拒绝)
先重启 systemctl restart mariadb
注意:安装后一定要重启mariadb,否则/etc/my.cnf文件为空,后面配置同步的时候就不行了。
注意:安装后一定要重启mariadb,否则/etc/my.cnf文件为空,后面配置同步的时候就不行了。
注意:安装后一定要重启mariadb,否则/etc/my.cnf文件为空,后面配置同步的时候就不行了。
再 mysql -u root -p
(3)mariadb的生成配置(因为maria默认无密码,所以有任何其他服务器都可以访问的危险,所以执行下面命令)
mysql_secure_installation
从数据库安装mariadb同理,最好切换到/opt下执行yum -y install mariadb mariadb-server
(三)模拟主从服务器同步django项目数据库中的所有表结构和内容
第五部建立主从后,主服务器更新就会更新到从服务器(就是主从先有同样的结构,才能同步更新)
注意:表结构不能同步更新,只有表内容可以,要想更新表结构,主从库都要手动更新
主服务器端
(1)主服务器数据库创建数据库和表以及插入数据
(2)从主服务器maria导出数据库OurBlog,记住先退出数据库,切换目录到/opt,进行导出,作为规定吧
(6)使用scp命令 将主服务器maria中导出的数据库文件 传到从服务器的 root用户的 根目录下的 opt文件夹
scp OurBlog.sql root@10.10.65.31:/opt
从服务器端
(1)先在从服务器root用户下/opt下检查主服务器是否发送 拷贝文件 成功
(2)进入mysql创建同名的数据库
(3)退出数据库,导入传过来的OurBlog.sql
mysql -h localhost -u root -p123 OurBlog < OurBlog.sql
(4)检查导入是否成功
(四)到此为止主从服务器中mysql都有OurBlog数据库了,且内容一致,第五步就是把主从服务器配置成整体,主服务器被写入数据,从服务器也会相应更新。
(五)主服务器在数据库中授权给从服务器们
目的是主服务器被写入了数据后,只有被授权的从服务器们可以同步更新
(1)主服务器数据库中输入 grant replication slave on *.* to root@"10.10.65.%" identified by "123" with grant option;
(2)刷新授权表
(六)主从数据库都要配置文件/etc/my.cnf
(1)主服务器配置文件/etc/my.cnf 先退出数据库
(主从数据库都要配置,配置内容有一处不一样)
注意:先保存一份my.cnf 到/opt 执行cp /etc/my.cnf /opt
注意:先保存一份my.cnf 到/opt 执行cp /etc/my.cnf /opt
注意:先保存一份my.cnf 到/opt 执行cp /etc/my.cnf /opt
若 vim /etc/my.cnf 后是这样子,不要慌,右边滚动条拉一下就看见了
输入:
server-id=1
log_bin=mysql-bin?
binlog-do-db=OurBlog
binlog-ignore-db=mysql
:wq 保存退出
配置完my.cnf后重启mariadb,进入数据库后再执行show master status; (master只有一个,这里本身就是主服务器数据库,所以master还是自己)
(2)从服务器配置文件/etc/my.cnf 先退出数据库
输入:
server-id=2 只要这里和主数据库不同就行
log_bin=mysql-bin?
binlog-do-db=OurBlog
binlog-ignore-db=mysql
:wq 保存退出
:wq保存退出后重启mariadb进入数据库执行show master status;
(七)从服务器认祖归宗
从服务器根据主服务器show master status; 展示出来的表进行归宗配置
根据下面server中查出的表在slave_server数据库执行命令如图二:
图一:
从服务器数据库根据上表执行如下:(10.10.65.44是主服务器ip)
change master to MASTER_HOST='10.10.65.44',MASTER_USER='root',MASTER_PASSWORD='123',MASTER_LOG_FILE='mysql-bin?.000001',MASTER_LOG_POS=245;
图二:
接着输入:
再执行:show slave status:
出现下面情况则成功: