Linux中,数据库服务有三种:互为主主,互为主从,一主一从(主从数据库)
互为主主:数据库时时更新 互为主从:数据库达到一定的的容量再更新 一主一从:在主数据库上面创建的,可以同步到从数据库;在从数据库上面创建的,并不可以同步到主数据库中
前提:首先要配好网络,yum源
# 配置网络# (1)虚拟交换机配置为192.168.100.0网段,网络适配器选择仅主机模式;# (2)编辑网络配置文件:[root@wzg ~]# cd /etc/sysconfig/network-scripts/[root@wzg network-scripts]# vim ifcfg-ens33#需要修改的参数为:BOOTPROTO=staticONBOOT=yesIPADDR=192.168.100.10PREFIX=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=rhelbaseurl=file:///mediaenabled=1gpgcheck=0# (4)清空yum源缓存并检索yum源[root@wzg yum.repos.d]# yum clean all [root@wzg yum.repos.d]# yum repolist
# 配置网络
# (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 ################# 主数据库改为mysql1hostnamectl set-hostname mysql1bash# 从数据库改为mysql2hostnamectl set-hostname mysql2bash################ mysql1 ################# 做域名解析(两边都要做)vim /etc/hosts加入:192.168.100.10 mysql1192.168.100.20 mysql2# 拷贝到mysql2scp /etc/hosts 192.168.100.20:/etc
################ mysql1和mysql2 ################
# 主数据库改为mysql1
hostnamectl set-hostname mysql1
bash
# 从数据库改为mysql2
hostnamectl set-hostname mysql2
################ 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
# 安装数据库软件包
yum -y install mariadb mariadb-server
# 启动数据库服务
systemctl start mariadb
# 设置为开机自启
systemctl enable mariadb
注意:mysql1和mysql2都要初始化,并且要先启动才能初始化
################ mysql1和mysql2 ################# 初始化数据库mysql_secure_installation回车 #默认为设置密码y #设置密码?密码设置为000000y #移除匿名用户?n #不允许root远程登录?y #移除测试数据库?y #重新加载数据库?
# 初始化数据库
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=mysqlfirewall-cmd --reload################ mysql2 ################# 编辑配置文件vi /etc/my.cnf加入:[mysqld]server-id = 20# 重启数据库服务systemctl restart mariadb
# 编辑配置文件
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 ################
server-id = 20
分别设置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';
# 进入数据库
mysql -uroot -p000000
# 设置权限(授权,复制权限)
grant all privileges on *.* to root@'%' identified by "000000";
grant replication slave on *.* to 'user'@'mysql2' 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,表示已开启从数据库
# 启动从数据库
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键
# 查看当前的数据库
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");
# 查看当前的数据库(可以看到上面创建的class库)
# 查看class库中的表(可以看到上面创建的student表)
show tables;
# 查看student表的具体信息(可以看到上面插入的一条数据)
select * from student;
# 退出数据库quit或ctrl+C键
声明:未经许可,不得转载
原文链接:http://www.cnblogs.com/wzgwzg/p/15690547.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728