主从数据库

Linux中,数据库服务有三种:互为主主,互为主从,一主一从(主从数据库)

互为主主:数据库时时更新

互为主从:数据库达到一定的的容量再更新

一主一从:在主数据库上面创建的,可以同步到从数据库;在从数据库上面创建的,并不可以同步到主数据库中

服务名 mariadb
协议名 mysql
进程名称 mysqld
端口号 3306

一、改主机名、写域名解析文件

前提:首先要配好网络,yum源

点击查看配置网络,yum
# 配置网络
# (1)虚拟交换机配置为192.168.100.0网段,网络适配器选择仅主机模式; # (2)编辑网络配置文件:
[root@wzg ~]# cd /etc/sysconfig/network-scripts/
[root@wzg network-scripts]# vim ifcfg-ens33
#需要修改的参数为:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24 # (3)重启网络服务:
[root@wzg network-scripts]# systemctl restart network # 配置yum源
# (1)先进入虚拟机设置,把系统镜像连接到虚拟机的光驱上; # (2)挂载光驱里的镜像:
[root@wzg ~]# mount /dev/cdrom /media/
mount: /dev/sr0 is write-protected, mounting read-only # (3)修改yum源配置文件:
[root@wzg ~]# cd /etc/yum.repos.d/
[root@wzg yum.repos.d]# ls
[root@wzg yum.repos.d]# vim local.repo
[rhel]
name=rhel
baseurl=file:///media
enabled=1
gpgcheck=0 # (4)清空yum源缓存并检索yum源
[root@wzg yum.repos.d]# yum clean all
[root@wzg yum.repos.d]# yum repolist

注意:mysql1和mysql2都要设置主机名和域名解析

################  mysql1和mysql2  ################
# 主数据库改为mysql1
hostnamectl set-hostname mysql1
bash # 从数据库改为mysql2
hostnamectl set-hostname mysql2
bash ################ mysql1 ################
# 做域名解析(两边都要做)
vim /etc/hosts
加入:
192.168.100.10 mysql1
192.168.100.20 mysql2 # 拷贝到mysql2
scp /etc/hosts 192.168.100.20:/etc

二、安装服务

注意:mysql1和mysql2都要安装

################  mysql1和mysql2  ################
# 安装数据库软件包
yum -y install mariadb mariadb-server # 启动数据库服务
systemctl start mariadb # 设置为开机自启
systemctl enable mariadb

三、初始化数据库

注意:mysql1和mysql2都要初始化,并且要先启动才能初始化

################  mysql1和mysql2  ################
# 初始化数据库
mysql_secure_installation 回车 #默认为设置密码
y #设置密码?密码设置为000000
y #移除匿名用户?
n #不允许root远程登录?
y #移除测试数据库?
y #重新加载数据库?

四、修改配置文件

分别修改mysql1和mysql2的配置文件

################  mysql1  ################
# 编辑配置文件
vi /etc/my.cnf
加入:
[mysqld]
log-bin = mysql-bin #设置为主数据库(也就是以二进制加载日志文件)
server-id = 10 #根据IP的最后一个字段 # 重启数据库服务
systemctl restart mariadb # 配置防火墙
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload ################ mysql2 ################
# 编辑配置文件
vi /etc/my.cnf
加入:
[mysqld]
server-id = 20 # 重启数据库服务
systemctl restart mariadb

五、设置数据库权限

分别设置mysql1和mysql2的数据库权限

################  mysql1  ################
# 进入数据库
mysql -uroot -p000000 # 设置权限(授权,复制权限)
grant all privileges on *.* to root@'%' identified by "000000";
grant replication slave on *.* to 'user'@'mysql2' identified by '000000'; ################ mysql2 ################
# 进入数据库
mysql -uroot -p000000 # 设置权限(从库连接主库)
grant all privileges on *.* to root@'%' identified by "000000";
change master to master_host='mysql1',master_user='user',master_password='000000';

六、启动从数据库

在mysql2上:

################  mysql2  ################
# 启动从数据库
start slave; # 查看状态
show slave status\G # 可以看到Slave_SQL_Running: Yes,表示已开启从数据库

七、验证主从数据库

在mysql1上创建数据库,然后在mysql2上查看是否同步

################  mysql1  ################
# 查看当前的数据库
show databases; # 创建一个新的(class)库
create database class; # 进入class数据库
use class; # 创建一个student表
create table student(ID int not null primary key,name varchar(20)); # 在表中插入一条数据
insert into student values(001,"wzg"); ################ mysql2 ################
# 查看当前的数据库(可以看到上面创建的class库)
show databases; # 进入class数据库
use class; # 查看class库中的表(可以看到上面创建的student表)
show tables; # 查看student表的具体信息(可以看到上面插入的一条数据)
select * from student; # 退出数据库quit或ctrl+C键

声明:未经许可,不得转载

最新文章

  1. java 单利模式
  2. PL/SQL 中查询CLOB字段内容
  3. Codeforces Round #364
  4. CentOS系统安全配置
  5. BZOJ 1820: [JSOI2010]Express Service 快递服务( dp )
  6. JAVA--可变长参数
  7. Spring基于注解开发异常
  8. Apache shiro集群实现 (一) shiro入门介绍
  9. 利用unittest+ddt进行接口测试(一):简单demo
  10. soul开源网关项目搭建学习
  11. Linux 小知识翻译 - 「SCP和SFTP」
  12. Objective-C中NSArray的基本用法示例
  13. JS获取Dropdownlist选中值
  14. 整理一些常用的前端CND加速库,VUE,Jquery,axios
  15. 通过path绘制点击区域
  16. redis sortedSet
  17. 爱奇艺全国高校算法大赛初赛B
  18. NSMutableString和NSString区别,及相互转换方法
  19. 洛谷P5265 【模板】多项式反三角函数
  20. [spring] Ioc 基础

热门文章

  1. python实现图片色素的数值运算(加减乘除)和逻辑运算(与或非异或)
  2. [atAGC054D]ox
  3. [gym102268E]Expected Value
  4. [uva11429]Randomness
  5. 权限树的制作(menu)
  6. [源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关
  7. Codeforces 1129D - Isolation(分块优化 dp)
  8. intent.getSerializableExtra(转)
  9. Pycharm的简单配置和使用
  10. dlang 安装