[主从数据库 的配置]

数据库服务

主可以把数据复制到从
从不能复制数据到主

1、互为主主 (数据可以互相拷贝)
2、互为主从 ()
3、一个主、一个从

1、安装mariadb 的前提

(Yum 和 IP)详情请看 Linux的基础操作

1)有mysql1(主角)、mysql2(备角)      
2) mysql1(主角)、mysql2(备角)  都配置好 同一网段的网络		
3)mysql1(主角)、mysql2(备角)都配置好yum源

2、安装主从数据库

主备数据库里都安装
[root@localhost ~]# yum -y install mariadb mariadb-server

[root@localhost ~]# systemctl start mariadb
	
[root@localhost ~]# systemctl enable mariadb		启动mariadb,并设为开机自启动(这样才能初始化)

3、初始化数据库并配置文件

[root@localhost ~]# mysql_secure_installation
这里(y,y,n,y,y)		记住这里输入的数据库密码

mysq1
[root@localhost ~]# vi /etc/my.cnf
	[mysql]
	server-id = 10   				这里ID用IP的最后一位
	log-bin =  mysql-bin			这句是宣告 是主数据库
	
mysq2
[root@localhost ~]# vi /etc/my.cnf
	[mysq2]
	server-id = 20   				

4、修改主机名,域名关闭防火墙和selinux

mysq1
[root@localhost ~]# hostnamectl set-hostname mysql
[root@localhost ~]# bash	
[root@mysq1 ~]# vi /etc/hosts
	192.168.100.10   mysql1
	192.168.100.20   mysql2

[root@mysq1 ~]# systemctl stop firewalld
[root@mysq1 ~]# systemctl enable firewalld
[root@mysq1 ~]# setenforce 0

	
mysql2
[root@localhost ~]# hostnamectl set-hostname mysql2
[root@localhost ~]# bash	
[root@mysql2 ~]# vi /etc/hosts
	192.168.100.10   mysql1
	192.168.100.20   mysql2
	
[root@mysq2 ~]# systemctl stop firewalld
[root@mysq2 ~]# systemctl enable firewalld.
[root@mysq1 ~]# setenforce 0

5、登陆到数据库赋予权限

mysq1
[root@mysq1 ~]# mysql -uroot -p000000		  密码是初始化时设置的

[root@mysq1 ~]# grant all privileges on *.* to root@'%' identified by '000000';				root登陆mysql1上时对所有库的所有表有读写权限

[root@mysq1 ~]# grant replication  slave on *.* to 'user'@'mysql2' identified by '000000';	赋予mysq2有复制的权限

mysq2
[root@mysq2 ~]# mysql -uroot -p000000

[root@mysq2 ~]# grant all privileges on *.* to root@'%' identified by '000000';	

[root@mysq2 ~]# change master to master_host='mysql1',master_user='user',master_password='000000';		 	设mysq1为主。mysq2备

[root@mysq2 ~]# start slave;

[root@mysq2 ~]# show slave status\G;			查看状态

6、可以用mysql语句来测试

mysql1:
[root@mysq1 ~]# mysql -uroot -p000000	登陆数据库

show databases;

create database test;			创建test这个库

use test;						进入test这个库

create table student(id int not null primary key,name varchar));		创student这个表

insert into student values('2016081111','张三')							插入一行数据

mysql2:
[root@mysq2 ~]# mysql -uroot -p000000

show databases;				查询库内容

use test;						
show tables;					展示所有表

select * from student;			查询student表内容
posted @ 2021-12-16 14:12  陽YANG  阅读(38)  评论(0编辑  收藏  举报