码迷,mamicode.com
首页 > 数据库 > 详细

Linux下安装MySQL及MySQL主从同步配置

时间:2020-03-12 23:37:07      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:enabled   主从   serve   sci   账号登陆   tin   databases   comm   ace   

从零开始说起,先说在Linux安装MySQL再说主从配置,MySQL的版本为5.7

一.mysql安装

1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadb

2. 使用 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 命令删除mariadb,避免造成冲突

技术图片

4.接下来编辑yum的源,vim /etc/yum.repos.d/mysql57.repo ,复制下面内容

[mysql57]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

技术图片

然后使用yum install mysq-community-server -y 命令进行下载mysql

下载好后使用 service mysqld status 查看mysql状态,未启动状态则使用 service mysqld start状态启动mysql

技术图片

下图看到mysql的服务已经启动

技术图片

初始密码保存在 /var/log/mysqld.log 这个文件下面,通过vi或者vim命令可以找到,也可以通过 grep ‘temporary password‘ /var/log/mysqld.log 命令直接读出密码 

技术图片

技术图片

使用root账号登陆mysql,输入mysql -u root -p (mysql -u 用户名 -p) 命令之后回车再输入密码

技术图片

刚安装完如果防火墙没关闭或者MySQL不允许外部链接的情况下进行外部连接会出现下面的错误,所以需要授权IP和关闭防火墙

技术图片

所以我们先重新设置下新密码和授权IP,进入了mysql不管做任何操作,都必须先重置密码,不然会出现下面错误,我们使用 SET PASSWORD = PASSWORD(‘新密码‘); 重置密码,mysql每个语句都必须由";" 分号结尾,初始化密码不能太简单,否则修改不了,如果想用简单的密码,可以先运行 set global validate_password_policy=LOW;  命令,使密码复杂度校验降低

技术图片

技术图片

技术图片

重置密码之后可以执行其他的MySQL命令,

1.先利用 show databases; 查看有哪些数据库

2.我们需要用到mysql这个库,则使用 use mysql; 命令进入mysql库,

3.使用show tables; 可以查看当前库下面的表

4.使用 select user,host from user;查询用户授权的地址,初始都是localhost

5.使用 update user set host=‘%‘; 命令把所有用户授权任意IP可以连接(个人使用可以设置成%,正式环境不推荐)

6.最后需要使用  flush privileges; 来使修改后的host生效

技术图片

技术图片

技术图片

到这里为止,Linux上安装mysql5.7就结束了

二,主从配置

主从配置的主要原理是主库每操作一条DDL或者DML语句,都会向日志写入执行果的sql,从库也不断向日志读取sql执行,下面开始配置

我的主库ip:192.168.65.128

我的从库ip:192.168.65.129

主库配置:

修改 /etc/my.cnf 文件

技术图片

[mysqld]
# 配置主从数据库(主)
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema     #不需要同步的配置
binlog-ignore-db=mysql                  #可以配置多个不需要同步的库
binlog-do-db=test                       #配置需要同步的库,也可以配置多个

从库配置:

修改 /etc/my.cnf 文件

技术图片

[mysqld]
log-bin=mysql-bin               #开启日志
server-id=3
replicate-do-db=test            #需要跟从的数据
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

然后重启2个数据库 service mysqld restart

接着来登陆主库配置数据同步账号( grant授权账号)

分别执行 grant replication slave on *.* to ‘slave‘@‘%‘ identified by ‘slave@123456789‘; 和 flush privileges;,再进入mysql执行 select user,host from mysql.user; 看看从库使用的账号是否创建成功

技术图片

技术图片

然后使用 show master status; 命令查询主库信息

技术图片

再登陆从库配置数据同步账号(配置主库的IP,账号密码,pos日志文件)

执行完 change master to master_host=‘192.168.65.128‘,master_user=‘slave‘,master_password=‘slave@123456789‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=726;

再执行  start slave; 开启从库线程

执行 show slave status\G; 可以查看到主库的ip,port以及是否连接成功的信息,当下图2个yes都出现的时候说明连接成功了,如果出现了  Slave_IO_Running: Connecting 这样的信息基本可以确定是密码 、pos 、 防火墙没关闭这三个原因其中的一种

技术图片

上面已经成功配置了MySQL的主从关系,接下来使用工具测试下,下面的master和slave分别是我的主库和从库,我们在主库上面简单地新增一个test表,可以看到从库也新增了一个表

技术图片

技术图片

技术图片

到目前为止MySQL的安装和主从同步配置也算完成了。主从同步的原理是 master 每执行一条sql都会向binlog文件写入执行过的DDL或者DML语句技术图片,然后slave会向日志文件读取sql,再执行sql,所以这里由三个线程完成,一个是master向日志记录执行过的sql的IO线程,一个是slave向日志文件读取sql的IO线程,一个是slave读取完日志信息再执行sql的sql线程(两个IO线程,一个SQL线程)技术图片

来源:http://www.1994july.club/

Linux下安装MySQL及MySQL主从同步配置

标签:enabled   主从   serve   sci   账号登陆   tin   databases   comm   ace   

原文地址:https://www.cnblogs.com/1994july/p/12483431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!