Linux——配置主从数据库服务

  • A+
所属分类:linux技术
摘要

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


主从数据库

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 statusG  # 可以看到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键 

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