MySQL 5.7.18的安装及主从复制(主从同步)
MySQL 5.7.18的安装与主从复制
|
IP |
计算机名 |
角色 |
|
192.168.1.222 |
001 |
master |
|
192.168.1.233 |
002 |
slave |
CentOS 6.9安装mysql5.7.18 #这里只展示一台的安装过程,另一台一样操作
下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
、下载,解压,并创建软链接
[root@001 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
[root@001 ~]# tar xf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@001 ~]# cd /usr/local/
[root@001 local]# ln -sv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql
2、新建mysql用户组和mysql用户
[root@001 local]# groupadd mysql
[root@001 local]# useradd -g mysql -r -s /sbin/nologin -M -d /data/mysqldata mysql
3、新建数据目录并赋予相关属组及权限
[root@001 local]# chown -R mysql:mysql /usr/local/mysql
[root@001 local]# mkdir -p /data/mysqldata
[root@001 local]# chmod -R 770 /data/mysqldata
[root@001 local]# chown -R mysql:mysql /data/mysqldata
4、初始化mysqld
[root@001 local]# cd /usr/local/mysql
[root@001 mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata --initialize
初始化完成后需记录下初始化密码

5、编辑配置文件及将mysql的服务脚本放到系统服务中,并配置环境变量让系统可以直接使用mysql的相关命令
[root@001 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@001 mysql]# ldconfig
[root@001 mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@001 mysql]# source /etc/profile.d/mysql.sh
[root@001 mysql]# chkconfig mysqld on
[root@001 mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #mysql路径
datadir=/data/mysqldata #mysql数据目录
socket=/tmp/mysql.sock
user=mysql
server_id=1 个从服务器需设置不同
port=3306
[root@001 mysql]# service mysqld start #启动mysql
Starting MySQL.Logging to '/data/mysqldata/001.err'.
. SUCCESS! #启动成功

6、修改密码
[root@001 mysql]# mysql -uroot -pdSrp%=Gdw4y: #这里的密码上刚才记录下来的
mysql> set password='123456';
mysql> FLUSH PRIVILEGES;
7、设置mysql远程可访问(前提是防火墙必须关闭,chkconfig iptables off:设置自动启动为关闭,service iptables sto:关闭防火墙)
[root@001 mysql]# service iptables stop
[root@001 mysql]# chkconfig iptables off
先登录到mysql
mysql> use mysql;
mysql> update user set host = '%' where user = 'root'; #按实际情况设置
mysql> flush privileges;
----以上是上台测试机安装MySQL5.7.18的全部步骤----
----下面开始配置MySQL5.7.18 的主从复制----
MySQL主从复制
|
IP |
计算机名 |
角色 |
|
192.168.1.222 |
001 |
master |
|
192.168.1.233 |
002 |
slave |
#这里先导入测试数据库用于同步详见:http://www.cnblogs.com/imweihao/p/7286926.html,也可执行建立
1、master上开启binlog日志,配置如下
一般mysql配置文件在目录/etc下,叫my.cnf (如果找不到的话也有可能在这些目录下:/etc/my.cnf,/etc/mysql/my.cnf,/usr/local/mysql/etc/my.cnf,~/.my.cnf)
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysqldata
socket=/tmp/mysql.sock
user=mysql
server-id=1
port=3306
server-id=1 #服务器id (主从必须不一样)
log-bin=mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径
#作为主机的配置
binlog-do-db=employees #要给从机同步的库
#binlog-do-db=
binlog-ignore-db=mysql #不给从机同步的库(多个写多行)
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
expire_logs_days=7 #自动清理 7 天前的log文件,可根据需要修改
[root@001 employees_db]# service mysqld restart #重启数据库
测试log_bin是否成功开启
mysql> show variables like '%log_bin%';

2、master的数据库中建立备份账号的任何远程地址的backup都可以连接master主机
mysql> grant replication slave on *.* to 'backup'@'%' identified by '123456';
mysql> use mysql
mysql> select user,authentication_string,host from user;

3、拷贝数据
重启MySQL服务并设置读取锁定,读取锁定的意思是只能读取,不能更新,以便获得一个一致性的快照
mysql> show master status\G #

查看主服务器上当前的二进制日志名和偏移量值这里的file 和position 要和从上的一致
导出master(192.168.1.222)种的数据,然后导入slave 中
master:
[root@001 employees_db]# mysqldump -uroot -p123456 -hlocalhost employees > /opt/employees.bak
[root@001 employees_db]# yum install openssh-clients -y #(注:slave也需要安装)
slave:
[root@001 employees_db]# yum install openssh-clients -y
[root@001 ~]# scp /opt/employees.bak root@192.168.1.233:/opt/
root@192.168.1.233's password: #输入密码
employees.bak 100%
4、配置slave(192.168.1.233)
[root@002 ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #mysql路径
datadir=/data/mysqldata #mysql数据目录
socket=/tmp/mysql.sock
user=mysql
server_id=2 个从服务器需设置不同
port=3306
#加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。
read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
#relay_log_recovery=1 #从机禁止写
#super_read_only=1 #从机禁止写
然后导入到mysql数据库中,slave上的employees数据库不存在则先创建,然后再导入
mysql> create database employees;
[root@002 ~]# mysql -uroot -p123456 -hlocalhost employees < /opt/employees.bak
[root@002 ~]# service mysqld restart
登录slave数据库,并做如下设置
[root@002 ~]# mysql -uroot -p123456
mysql> stop slave;
mysql> change master to
-> master_host='192.168.1.222', #master的ip
-> master_user='backup', #备份用户名
-> master_password='123456', #密码
-> master_log_file='mysql-bin.000002', #上面截图,且要与master的参数一致
-> master_log_pos=154; #上面截图,且要与master的参数一致
mysql> start slave;
查看slave从机的状态
mysql> show slave status \G

图中2个yes 代表设置成功
5、关闭掉主数据库的读取锁定,并测试
mysql> unlock tables;


在marster中创建一个新表再查看slave中是否有数据
master:
mysql> use employees;
mysql> create table test001(id int auto_increment primary key,name varchar(20) not null);
mysql> insert into test001 values(null,'will');
mysql> insert into test001 values(null,'jim');
mysql> insert into test001 values(null,'tom');
slave:
mysql> use employees;
mysql> show tables;

mysql> select * from test001;

测试2:重启关闭从数据库,主删除test001表,然后主从数据库都重启看是否正常
mysql> drop table test001;

以上实验证明主从同步成功!!!
MySQL 5.7.18的安装及主从复制(主从同步)的更多相关文章
- MySQL 5.7.18的安装与主从复制(转自:https://www.baidu.com/home/news/data/newspage?nid=9485770887287731252&n_typ)
CentOS6.7安装mysql5.7.18 1. 解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /us ...
- MySQL 5.7的安装及主从复制(主从同步)
1.master上开启binlog日志,配置如下 一般mysql配置文件在目录/etc下,叫my.cnf (如果找不到的话也有可能在这些目录下:/etc/my.cnf,/etc/mysql/my.cn ...
- mysql实现主从复制/主从同步
业务场景 小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响.这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题.中间使用 ...
- centos 7 SVN安装脚本搭建主从同步灵活切换
svn 脚本下载 http://opensource.wandisco.com/subversion_installer_1.9.sh 2019-Aug-20 12:20:4810.1Kapplica ...
- mysql5.7.18的安装与主从复制
CentOS6.7安装mysql5.7.18 1. 解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /u ...
- mysql 5.7.18 winx64安装配置方法
在mysql-5.7.18-winx64文件夹下新建my.ini文件 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置 ...
- mysql 8.0.18 小白安装教程
1. 下载 官网下载:https://dev.mysql.com/downloads/mysql/ 嫌官网网速慢可以加q群,在群文件里下载: 1.下载第一个download 2.解压在自己建的目录(各 ...
- MySQL5.7.18自动化安装脚本
背景 很好的朋友邱启明同学,擅长MySQL,目前任职某大型互联网业MySQL DBA,要来一套MySQL自动安装的Shell脚本,贴出来保存一些. 此版本为 MySQL 5.7.18 ###### 自 ...
- Mysql5.7安装错误处理与主从同步及!
basedir=/iddbs/mysql-5.7.16 datadir=/iddbs/mysql5.7/data3306 一.自定义Mysql.5.7版本免编译安装: 1.Db-server1安装前期 ...
随机推荐
- .NET发布网站出现了一系列问题(1)---“无法显示XML页”的解决办法
原文发布时间为:2008-09-11 -- 来源于本人的百度文章 [由搬家工具导入] 原因之一: 这种错误是由asp.net 帐户没有在iis注册造成的。原因可能是.net framework 2.0 ...
- configurationmanager.getsection usage
public static void CreateAppSettings() { // Get the application configuration file. System.Configura ...
- APP漏洞扫描用地址空间随机化【转】
转自:http://www.cnblogs.com/alisecurity/p/6141575.html 前言 我们在前文<APP漏洞扫描器之本地拒绝服务检测详解>了解到阿里聚安全漏洞扫描 ...
- apscheduler定时器
每天定时任务: import time from apscheduler.schedulers.background import BackgroundScheduler def foo(): pri ...
- Maven 多模块父子工程 (含Spring Boot示例)
一.为什么要用Maven多模块 假设有这样一个项目,很常见的Java Web应用.在这个应用中,我们分了几层: Dao Service Web 对应的,在一个项目中,我们会看到一些包名: org.xx ...
- golang:mgo剖析之Session
golang操作mongo使用的包是"gopkg.in/mgo.v2",coding过程中需要并发读写mongo数据库,简单观摩了下源码,记录下自己的一些理解,如有错误,敬请斧正. ...
- How To Commit Just One Data Block Changes In Oracle Forms
You have an Oracle Form in which you have multiple data blocks and requirement is to commit just one ...
- 关于Web应用和容器的指纹收集以及自动化软件的制作
一次对Web应用的渗透,九成都是从信息收集开始,所以信息收集就显得尤为重要.关键信息的收集可以使你在后期渗透的时候更加的得心应手,把渗透比喻成走黑暗迷宫的话,那信息收集可以帮你点亮迷宫的大部分地图. ...
- eclipse离线安装插件过程
离线安装插件: 1. help -> install New Softe.. 2. 打开安装插件界面 最后点击,next, 同意事项,重启eclipse.
- 报错: Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library
报错: Access restriction:The type JPEGCodec is not accessible due to restriction on required library C ...