Centos7+Mariadb集群-主从配置简介
最近一直在补Linux相关的知识,主要是学习Linux下基本日常应用服务器的配置和优化。今天主要介绍Centos7下Mysql集群的安装和配置。说到集群化,其实就是为了提高服务的高可用性。对于高可用的相关服务,今天不是主要内容。今天主要介绍MYSQL的主从配置。Linux下其他服务的介绍以及服务的高可用性负载平衡将在后面的文章中介绍。今天的介绍:Centos7+Mysql主从配置。
环境介绍:
主机名:A-S
IP:192.168.5.21
角色:Mysql主
主机名:B-S
IP:192.168.5.22
角色:Mysql奴隶
其实mysql在Centos7下已经被抛弃,变成了Mariadb。当然功能和配置都是一样的。例如,当我们在较低版本中安装mysql时,我们需要执行以下命令:
yum安装-yMySQLMySQL-服务器
通过查看安装信息,我们发现mysql-server不可用于软件包。
最后,我们看到安装人员陈公公给了你Mariadb的包信息。
Centos7中mysql数据库被MariaDB取代。好吧!那我们来安装MariaDB数据库吧!
运行yuminstallMariaDB-serverMariadb-client命令安装Mariadb。
yum install mariadb-server mariadb-client完整安装
我们通过rpm检查安装信息。
启动mariadb数据库
systemctl start mariadb 接着运行 mysql_secure_installation配置MariaDB我们可以根据自己的需求来定义配置。
配置完成
配置完成后,我们开始进入数据库。
mysql –uroot –p查看数据库
show databases;我们创建一个测试数据库。
create database DB1;最后我们用工具连接mysql,提示不允许这个主机连接,因为mysql默认不允许任何主机连接。
我们可以根据自己的配置设置运行那些主机和用户连接mysql
如果我们需要配置任何主机进行连接,我们可以使用命令。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; flush privileges;如果任何主机连接不需要密码,您可以到下面。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; flush privileges;下面简单说几个日常配置命令。
root用户可以在特定的IP地址远程登录,拥有所有库的 *** 作权限。具体 *** 作如下:登录MySQL:MySQL-uroot-p“youpassword”进行本机授权:授予*上的所有权限。*到root@“192.168.x.x”由“您的密码”标识,带有授权选项;重载表:刷新权限;退出mysql数据库:退出
允许root用户以特定的IP远程登录,并拥有所有特定于库的 *** 作权限。具体 *** 作如下:登录MySQL:MySQL-uroot-p“youpassword”在本机进行授权 *** 作:GRANTselect,insert,update,deleteon*。*以“您的密码”标识的root@“192.168.x.x”;重载表:刷新权限;退出mysql数据库:退出
我就不介绍更多的细节了,继续下面的配置介绍。
我们之前创建了一个数据库。
create databases DB1; show databases; use DB1; show tables;接下来让我们创建一个表。
CREATE TABLE info(id int(30)NOT NULL,name varchar(30) NOT NULL,sex varchar(30) NOT NULL,mail VARCHAR(255) NOT NULL,PRIMARY KEY(id)); show tables;插入几条数据
insert into info (name,sex,mail) values('lisi','boy','lisi@abc.com'); insert into info (name,sex,mail) values('xiaoli','girl','xiaoli@abc.com'); select * from info;我们也可以通过工具来检查。
mysql的安装及配置再次就介绍完了,最后我们简单的说一下,MYSQL数据库数据文件位置/var/lib/mysql/创建第一个数据库后,我们将以同样的方式安装和配置第二个Mysql服务器。我又跳过了;方法同上一模一样;
注意:我们不需要创建一个表作为第二台机器,我们只需要创建一个数据库(DB1),以便将服务器1上的mysql恢复到服务器2。
至此,Server1和Server2的数据库已经安装完毕;
因此,现在我们需要将数据库备份和恢复到从属服务器。备份mysql的方法有很多,比如直接备份成.sql文件,或者备份成压缩文件。甚至我们可以通过脚本来备份它。这里都说说吧。
我们先来看看数据库数据。
首先是备份。
mysqldump -hlocalhost -uroot -p Dbname > Dbname.sql mysqldump -hlocalhost -uroot -p DB1 > DB1.sql接下来,我们将通过压缩对其进行备份。
mysqldump -hlocalhost -uroot -p DBName | gzip > DBName.sql.gz mysqldump -hlocalhost -uroot -p DB1 | gzip > DB1.sql.gz接下来,我们通过语句删除数据库中的所有数据。
delete from dbo.info;接下来,我们来还原一下;
首先,我们默认备份恢复。事实上,恢复和备份命令有两个不同的特征。
1.符号方向相反,备份大于符号,恢复小于符号。2.mysqldump用于备份,mysql用于恢复。
mysql -hlocalhost -uroot -p DB1 < DB1.sql恢复后,我们查询数据库。
我们继续清除空数据,然后用压缩格式还原;
我们继续使用压缩来恢复;
gunzip < DB12016-08-23.sql.gz | mysql -uroot -p DB1恢复完成
引入备份后,我们需要将Server1的mysql备份数据拷贝并恢复到Server2。
scp DB1.sql root@192.168.5.22:/接下来,我们需要restore命令将数据库恢复到Server2。
前期工作做好之后,下一步重点是mysql主从配置;
首先,我们登录mysql主服务器,然后编辑Mysql的配置文件。
vim /etc/my.cnf我们想补充以下内容:
注意:一定要添加到mysqld中。如果添加的位置或信息错误,执行显示主状态;结果是空;
#设置服务器ID,为1的表示为主服务器;如果服务器没有以下配置,添加,如果有就跳过。 server-id=1 #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。 log_bin=mysql-bin? #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\ binlog-do-db=DB1 #不同步mysql系统数据库 binlog-ignore-db=mysql重启mysql服务
sysmtectl restart mariadb进入mysql控制台。
mysql -uroot -p123456查看数据库主机的概要文件状态
show master status;查看主服务器,会出现以下类似信息;如果看不到下面的结果或者是空,说明my.cnf配置文件的配置有问题。请检查一下。
注意:这里记住File的值:mysql-bin.000001和Position的值:245,后面会用到。
有了主服务器的mysqlmaster配置,我需要在从服务器上配置它。
配置MySQL从服务器的my.cnf文件;区别在于服务器id不同。
vi /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容 #设置服务器ID,为1的表示为主服务器,为2的表示为从服务器;如果服务器没有以下配置,添加,如果有就跳过。 server-id=2 #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。 log_bin=mysql-bin? #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\ binlog-do-db=DB1 #不同步mysql系统数据库 binlog-ignore-db=mysql接下来,配置slave并输入从属服务器的mysql控制台配置:
mysql -u root -p #进入MySQL控制台 slave stop; #停止slave同步进程接下来,通过以下命令配置主从关系:在从服务器上运行以下命令。
change master to master_host='主服务器',master_user='mysql用户名',master_password='mysql服务密码',master_log_file='File值' ,master_log_pos=Postion值; change master to master_host='192.168.5.21',master_user='root',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=254; 里面填写的信息是是在主服务器上执行show master status;的信息 启动slave slave start;最后,我们检查主从同步是否正常。
show slave status;最后,我们测试数据并将数据添加到主服务器数据表中。
然后在从属服务器上查看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)