Centos7安装MySQL并实现主从数据库同步

Centos7安装MySQL并实现主从数据库同步

一、 安装MySQL数据库

1、 创建mysql文件夹:mkdir /home/mysql 用于存放MySQL安装包
链接: https://pan.baidu.com/s/1A2HBp5gmxv8RCur45Qb2EA
提取码: zrdq

2、 本人利用的是secureCRT将下载的MySQL安装包上传到服务器

3、 解压tar文件:tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
4、 卸载冲突的RPM组件
在我们安装mysql相关组件的时候,如果不将此冲突的组件删除掉,我们是安装不成功的。
查看postfix和mariadb-libs相关的组件:

rpm -qa | grep postfix
rpm -qa | grep mariadb

卸载postfix和mariadb-libs:

rpm -e --nodeps postfix-2.10.1-6.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

5、 安装相应的依赖 :

yum -y install libaio
yum -y install net-tools
yum -y install perl

6、 安装mysql组件
经过上面的解压操作,我们得到了很多rpm文件。但是我们不需要这么多,我们只需要安装以下四个组件就可以了:
因为具有依赖关系,所以我们需要按顺序执行。
用 rpm -ivh 文件名 就能安装相应的组件。
在执行server的时候,需要依赖安装一些工具组件,已经在上文有说明了安装命令

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

默认数据存储路径/var/lib/mysql 配置文件路径/etc/my.cnf
7、 修改MySQL密码
mysql安装完成之后我们是没有设置密码的,但是mysql为我们设置了一个临时的密码,我们可以查看mysql的日志知道这个临时密码,查看临时密码前确保数据库启动。
(1)启动数据库
查看mysql是否启动:service mysqld status
启动mysql:service mysqld start
停止mysql:service mysqld stop
重启mysql:service mysqld restart
(2)查看临时密码:grep password /var/log/mysqld.log

这样我们得知临时密码是: #BRm.Mi/s6.i,然后我们用这个临时密码登录数据库。(数据库的密码需要满足以下条件:大小写字母,数字和特殊符号)
登录mysql(命令:mysql -p),输入临时密码
设置新密码:set password = password(“Mysql_123”);
退出当前登录:quit;
重新登录,此时就能用新密码登录了,然后就可以进行数据库操作了。
8、 允许远程连接
开启mysql远程访问权限,允许远程连接

mysql -u root -p #这里回车输入密码
use mysql;
update user set host = '%' where user = 'root';
flush privileges;

9、 创建数据库,并指定UTF-8编码

CREATE DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;

10.导入数据
将准备好的数据库文件20151010.sql文件通过工具,上传至/root目录下,并等待上传完毕。
登录数据成功之后

use 数据库名
执行命令source /root/20151010.sql

二、 数据库主从同步数据

1、 环境:
主服务器:centos 7.0 mysql 5.7.23 IP:192.168.41.131
从服务器:centos 7.0 mysql 5.7.23 IP:192.168.41.132
主从服务器都为test1数据库

主服务器
1.1、创建一个复制用户,具有replication slave 权限。
在登录的数据库的情况下执行下面语句,其中cpuser是用户名、192.168.41.132是从服务器IP地址、Mysql_123是密码,一定一定要flush刷新权限:

mysql>grant replication slave on *.* to 'cpuser '@'192.168.41.132' identified by 'Mysql_123 ';
mysql>flush privileges;

1.2、编辑my.cnf

vi /etc/my.cnf
添加
server-id=131 #唯一标识,暂时用的IP最后一位
log-bin=/var/lib/mysql/mysql-bin #日志路径
slave-skip-errors=all #是跳过错误,继续执行复制操作(可选)
sync_binlog=1
log-bin-trust-function-creators=1 
binlog-do-db=test1  #需要备份的数据库名,如果备份多个数据库,重复设置这个选项 即可

1.3、重启mysql数据库

service mysqld restart

1.4、得到binlog日志文件名和偏移量(此处记住File名称和Position值,后面slave服务器配置时需要用到)

mysql> show master status;
+---------------+--------- +--------------+------------------+
| File             | Position   | Binlog_Do_DB  | Binlog_Ignore_DB   |
+---------------+--------- +--------------+------------------+
| mysql-bin.000009 |      154 |               |                   |
+---------------+----------+--------------+-----------------+
1 row in set (0.00 sec)

从服务器
2.1、编辑my.cnf文件

vi /etc/my.cnf
添加
server-id=132 #唯一标识
replicate-do-db=test1 #数据库
slave-skip-errors=all #与上相同
slave-net-timeout=6 #同步时间6S

2.2、重启从数据库

service mysqld restart

2.3、对从数据库进行相应设置

此处要注意logfile的名称和position的值,其余host、user和password为主数据库设置的账号和密码

mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to 
   -> master_host='192.168.41.131',
   -> master_user='cpuser',
   -> master_password='Mysql_123',
   -> master_log_file='mysql-bin.000009',
   -> master_log_pos=154;
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

2.4、执行mysql> show slave status\G;
看见如下双Yes则欧克;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

2.5、测试:
在master上,你可以看到slave的I/O线程创建的连接:在master上输入show processlist\G;

2.6、结果
最后在主数据同步数据库中表插入数据,然后看从库就可以看见同步,到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值