Server1:192.168.1.189  (主)

Server2:192.168.1.190  (从)

1、关闭默认的firewalld防火墙,安装iptables。

systemctl disable firewalld

安装iptables

yum -y install iptables*

并设置iptables开机自启动

2、开始安装mysql-5.6.38

检查是否默认安装了mysql及mariadb,默认安装了就卸载掉。

安装相关依赖包。

yum -y install cmake bison git ncurses-devel gcc gcc-c++

添加一个mysql使用的用户。

下载mysql-5.6.38.tar

wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz

解压下载好的软件包。

tar -zxvf mysql-5.6.38.tar.gz

创建数据目录及安装目录。

mkdir -p /usr/local/mysql

mkdir -p /usr/local/mysql/data

查找一下是否有这个文件CMakeCache.txt,有的话就删除。

find / -name CMakeCache.txt

进入解压包进行安装,路径根据自己服务器情况进行指定。

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql_3306.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

检查一下是否有错,若返回值不为0就有错误

进行make编译安装,编译时间较长。

make && make install

安装完成后创建日志需要的目录

mkdir -p /usr/local/mysql/log/errlog/  #错误日志目录

mkdir -p /usr/local/mysql/log/binlog/  #log-bin日志目录

mkdir -p /usr/local/mysql/log/slowlog/  #慢查询日志目录

修改目录的属主属组,及权限。

chown -R mysql:mysql /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql/*

设置可读可写权限。

创建mysql-sever系统表。

cd /usr/local/mysql/

./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

报错了需要Perl的依赖

然后在执行上面的语句就好了。

将配置文件移动到/etc下,配置问价你的默认路径。

根据您公司环境,及服务器进行配置)

主配置my.cnf

[client]

#password=your_password

port=3306

socket=/usr/local/mysql/mysql_3306.sock

default-character-set=UTF8

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port=3306

socket=/usr/local/mysql/mysql_3306.sock

#[mysqld_safe]

log-error=/usr/local/mysql/log/errlog/error.log

pid-file=/usr/local/mysql/mysql.pid

user=mysql

tmpdir=/tmp

skip-name-resolve

skip-external-locking

lower_case_table_names=1

server_id=1

binlog_format=row

log_bin_trust_function_creators=1

log_bin=/usr/local/mysql/log/binlog/mysql-bin

log-slave-updates

#设置log-bin日志删除30之前的,不删除会产生很大的日志

expire_logs_days=30

key_buffer_size=4024M

max_allowed_packet=256M

max_heap_table_size=256M

tmp_table_size=256M

sort_buffer_size=128K

read_buffer_size=4M

read_rnd_buffer_size=8M

myisam_sort_buffer_size=64M

thread_cache_size=64

query_cache_size=64M

max_connections=1000

max_connect_errors=1024

##连接超时##

wait_timeout=172800

interactive_timeout=172800

table_open_cache = 400

expire_logs_days=10

innodb_buffer_pool_size=2G

innodb_file_per_table=1

innodb_log_buffer_size=32M

innodb_open_files=800

sync_binlog=0

#打开慢查询日志功能

slow_query_log = 1

#超过2秒的查询记录下来

long_query_time = 2

##记录下没有使用索引的查询

log_queries_not_using_indexes = 0

slow_query_log_file=/usr/local/mysql/log/slowlog/slowquery.log

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

[isamchk]

key_buffer_size = 128M

sort_buffer_size = 128K

[myisamchk]

key_buffer = 128M

sort_buffer_size = 128K

配置启动脚本。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

在安装路径下先关闭一下mysql在启动。

bin/mysqld stop

启动mysql

软连接mysql使用mysql –uroot –p直接登陆。

ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql

登陆mysql

mysql -u root –p   ###密码为空,回车进入

设置密码

use  mysql;

update user set password=PASSWORD('123.com') where user='root';

授权远程登陆。

grant all privileges no *.* to root@”%” identified by “123.com”;

从服务器搭建:

从服务器基本的一些配置跟上面一样,除了目录不一样,用于区分主从。

安装目录

mkdir  -p  /usr/local/mysqlslave

mkdir  -p  /usr/local/mysqlslave/data

从服务器的cmake配置

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysqlslave -DMYSQL_UNIX_ADDR=/usr/local/mysqlslave/mysql_3306.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysqlslave/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

创建从数据库的日志目录,跟主不一样所以我体现在word

/usr/local/mysqlslave/log/errlog/   #错误日志

/usr/local/mysqlslave/log/binlog/   #log-bin日志

/usr/local/mysqlslave/log/relaylog/  # 中继日志

/usr/local/mysqlslave/log/slowlog/   #慢查询日志

授权目录

chown -R mysql:mysql /usr/local/mysqlslave

chown -R mysql:mysql /usr/local/mysqlslave/*

chmod 777 -R /usr/local/mysqlslave

chmod 777 -R /usr/local/mysqlslave/*

创建mysql-server表

cd /usr/local/mysqlslave/

./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysqlslave/data

报错了,缺少perl,安装一个依赖就好了,再次执行。

再次执行就好了。

从一样的,将my.cnf移动到/etc下面,进行配置。

(根据您公司环境,及需求进行配置)

从配置。Vim  /etc/my.cnf

[client]

#password       = your_password

port=3306

socket=/usr/local/mysqlslave/mysql_3306.sock

default-character-set=UTF8

## The MySQL server

[mysqld]

port=3306

basedir=/usr/local/mysqlslave/

socket=/usr/local/mysqlslave/mysql_3306.sock

datadir=/usr/local/mysqlslave/data

log-error=/usr/local/mysqlslave/log/errlog/error.log

pid-file=/usr/local/mysqlslave/mysql.pid

user=mysql #此处为mysql源码安装的系统用户名

tmpdir=/tmp

##log_timestamps = SYSTEM

##explicit_defaults_for_timestamp=1

skip-name-resolve

skip-external-locking

lower_case_table_names=1

server_id=2

binlog_format=row

log_bin_trust_function_creators=1

log_bin=/usr/local/mysqlslave/log/binlog/mysql-bin

log-slave-updates

##设置log-bin日志删除30之前的,不删除会产生很大的日志

expire_logs_days=30

### relay_log配置中继日志

relay_log=/usr/local/mysqlslave/log/relaylog/mysql-relay-bin

#

key_buffer_size=4024M

max_allowed_packet=256M

max_heap_table_size=256M

tmp_table_size=256M

sort_buffer_size=128K

read_buffer_size=4M

read_rnd_buffer_size=8M

myisam_sort_buffer_size=64M

thread_cache_size=64

query_cache_size=64M

max_connections=1000

max_connect_errors=1024

wait_timeout=172800

interactive_timeout=172800

table_open_cache=400

expire_logs_days=10

innodb_buffer_pool_size=2G

innodb_file_per_table=1

innodb_log_buffer_size=32M

innodb_open_files=800

sync_binlog=0

## 打开慢查询日志功能

slow_query_log=1

## 超过2秒的查询记录下来

long_query_time=2

## 记录下没有使用索引的查询

log_queries_not_using_indexes=0

slow_query_log_file=/usr/local/mysqlslave/log/slowlog/slowquery.log

[mysqldump]

quick

max_allowed_packet=16M

[mysql]

[isamchk]

key_buffer_size=128M

sort_buffer_size=128K

[myisamchk]

key_buffer=128M

sort_buffer_size=128K

##[mysqlhotcopy]

##interactive_timeout

先关闭一下数据库,在启动

配置启动脚本。

cp /usr/local/mysqlslave/support-files/mysql.server /etc/init.d/mysqld

软连接mysql使用mysql –uroot –p直接登陆。

ln -s /usr/local/mysqlslave/bin/mysql /usr/sbin/mysql

启动mysql

配置主从

主my.cnf配置

Server-id,master务器不能跟slave服务器的id一样。

Bin-log日志的路径指定,要有写入权限。

修改从的my.cnf配置

在主库(master)中创建一个用户用于与从库同步的用户名和密码(这里我创建一个slave_user用户,密码为123.COM!),并给slave_user用户授权,以用于主库操作从库。

create user "slave_user"@"192.168.1.190" identified by "123.COM!";

grant replication slave on *.* to 'slave_user'@'192.168.1.190';

flush privileges;

select host from mysql.user; #查看用户是否创建成功

查看master(主)状态

show master status;

这里的mysql-bin.000002,和Position值526,slave配置的时候会用到。

导出master的数据到从服务器去,让数据一致。

将数据上传至slave服务器。

在slave(从)数据库导入主服务器的数据。

配置slave,让其主从同步。

mysql> change master to

-> master_host='192.168.1.189',

-> master_user='slave_user',

-> master_password='123.COM!',

-> master_log_file='mysql-bin.000002',

-> master_log_pos=526,

-> MASTER_CONNECT_RETRY=10;

##关于MASTER_CONNECT_RETRY,在主服务器宕机的情况下,从服务器线程重新尝试连接主服务器之前睡眠的秒数。如果主服务器.Info文件中的值可以读取则优先使用,如果未设置,默认为60秒。

启动slave

start slave;

##关闭命令stop slave

##重启命令reset slave

查看slave的状态。

show slave status \G

只要Slave_IO_Running: Yes, Slave_SQL_Running: Yes,主从就搭建成功。若其中一项不为yes,查看mysql的错误日志。

在主数据库创建一个库,看看是否同步。

create database testdb;

use testdb;

create table book(

-> id int(10),

-> name varchar(15),

-> size int);

insert into book (id,name,size) values(1,"test",100);

主库插入数据完毕后在从库查看,是否有数据,如果有数据则主从同步成功。

Centos7搭建Mysql-5.6.38,及主从复制。的更多相关文章

  1. MySQL(14)---Docker搭建MySQL主从复制(一主一从)

    Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...

  2. 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……

    两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...

  3. [置顶] 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……

    两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...

  4. Linux CentOS 安装MySql以及搭建MySql主从复制

    前言 在之前的博客中,有过几篇都写了关于mysql在linux下的搭建教程,可能以后还会再写,但是又不想重复在写, 于是便想单独将此抽出来,单独写成一篇博客,并详细记录一些安装过程以及遇到的问题解决办 ...

  5. Vmware搭建LNMP环境(Centos7+Nginx+Mysql+PHP7.1.8)

    参考:1.Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程) 2.Centos7搭建LNMP环境 3.MySQL5.7修改默认root密码 4.CentO ...

  6. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  7. Docker搭建MySQL主从复制

    Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...

  8. 基于Docker Compose搭建mysql主从复制(1主2从)

    系统环境 * 3 Ubuntu 16.04 mysql 8.0.12 docker 18.06.1-ce docker-compose 1.23.0-rc3 *3 ==> PS  ###我用的是 ...

  9. 基于keepalived搭建MySQL的高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  10. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

随机推荐

  1. hdu1535——Invitation Cards

    Invitation Cards Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  2. php 在linux 用file_exists() 函数判断 另外一台服务器映射过来的文件是否存在 总是返回false

    php 在linux 用file_exists() 函数判断 另外一台服务器映射过来的文件是否存在 总是返回false .如下案例 $type="android"; $url=&q ...

  3. 如何简单的实现一个tab页title的动画效果

    首先我们来看看实现的效果 tab上的title沉下去的效果 先来看看布局 <?xml version="1.0" encoding="utf-8"?> ...

  4. Sublime Text3 运行python(转)

    From:http://blog.csdn.net/hun__ter/article/details/51223031 安装sublime text3后,按Ctrl+b无法运行python文件. 解决 ...

  5. 工具类之Condition

    再次看到Condition,第一感觉还是觉得它和Mutex的功能是一样的,没必要存在.心里这么想,其实自己也知道怎么可能多余呢?老老实实的再分析一下代码,这次一定要把理解出来的内容记下来!都怪平时写代 ...

  6. Android自定义View分析

    一.基本步骤 1.自定义View的属性 2.在View的构造方法中获取自定义属性 3.重写onMesure方法(非必须) 4.重写onDraw方法 二.具体实现 1.自定义View的属性,首先在res ...

  7. mysqldump命令使用详解

    mysqldump是一个数据库备份程序 用法:mysqldump [options] [db_name [tbl_name ...]] 描述:mysqldump是一个客户端逻辑备份的工作,备份的SQL ...

  8. poj1135

    Domino Effect Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10454   Accepted: 2590 De ...

  9. 用NODEJS处理EXCEL文件导入导出,文件上传

    參考文章 http://librajt.github.io/2013/08/04/handle-excel-file-with-nodejs/ 对照了 ExcelJS ,https://github. ...

  10. Android Interactive Animation

    Ref:收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation Ref:界面特效 Ref:BaseAnimation是基于开源的APP,致力于收集各种动画效果( ...