美文网首页
MYSQL主从复制

MYSQL主从复制

作者: 冷酷的温柔 | 来源:发表于2017-05-26 11:10 被阅读0次

一、环境:两台LINUX7 64位服务器;

IP:192.168.200.199,192.168.200.200,199为主,200为从。

二、原理:

主服务器(Master)负责网站写操作,从服务器负责读操作。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

三、安装mysql

1.解压缩文件包

cd /home/install
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

2.复制解压后的mysql目录到系统的本地软件目录

 mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql

3.删除系统中原有的mysql用户,再添加系统mysql组和mysql用户

userdel mysql
groupadd mysql
useradd -r -g mysql mysql

4.进入安装mysql软件目录

cd /usr/local/mysql

5.修改当前目录拥有者为mysql用户

chown -R mysql:mysql ./

6.进入support-files路径,发现没有默认的配置文件my_default.cnf,从网上找一个

cd /usr/local/mysql/support-files
vi my_default.cnf

7.my_default.cnf内容:

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8

back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M

max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8

thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6


server_id=1

innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M

innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on

[mysqldump]
quick

max_allowed_packet = 32M

[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192

[client]

8.切换mysql用户,进入mysql路径,创建data数据文件夹,再进入bin路径,安装并初始化数据

su - mysql
cd /usr/local/mysql/bin/
mkdir data
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/  --datadir=/usr/local/mysql/data/

9.安装信息

Paste_Image.png

10.切换为root用户,复制support-files路径下的my_default.cnf到/etc路径下,提示是否复盖,输入Y

su - root
cp -a my_default.cnf  /etc/my.cnf

11.复制support-files路径下的mysql.server,到/etc/init.d/

cp -a mysql.server /etc/init.d/mysqld

12.进入到mysql bin路径下,查看当前是否有进程,如果有就kill掉,然后启动mysql服务

ps -A | grep mysql
 /etc/init.d/mysqld start

13.连接mysql,进入mysql bin路径,使用root用户登陆,没有密码直接回车即可

./mysql -u root -p

14.修改数据库可以远程访问

use mysql
SET SQL_SAFE_UPDATES = 0; ##这一句必须要有,如果不执行这句数据库处在安全模式,不可以使用非主键的字段做为条件更新数据。
update user set host = '%' where user = 'root';

15.重起mysql服务

/etc/init.d/mysqld restart

16.修改主数据库192.168.200.199,/etc/my.cnf配置文件,并且重起

server-id=199
log-bin=mysqlmaster-bin.log
sync_binlog=1

/etc/init.d/mysqld restart

17.修从主数据库192.168.200.200,/etc/my.cnf配置文件,并且重起

server-id=200
log-bin=mysqlslave-bin.log
sync_binlog=1

/etc/init.d/mysqld restart

18.在主数据库上创建用于主从复制的账户

cd /usr/local/mysql/bin/
./mysql -uroot -p
msyql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.200.200' IDENTIFIED BY '111111';

19.在从数据库服务器上设置主数据库服务器向从数据库服务器同步

mysql> change master to master_host = '192.168.200.199',master_user='repl',master_password='111111',master_log_file='mysqlmaster-bin.000002',master_log_pos=730;

master_log_file,master_log_pos是在主数据库上执行查询得到的,不要写错了。
show master status;

20.开启从数据库的复制线程。

mysql> start slave;

21.查看同步状态

show slave status \G
Paste_Image.png

22.测试一下,在主数据库里插入一条数据试试,看看重数据库有没有

在主库上随便建一个表,插入几条数据,从数据可以同步过来。

至此配置成功,谢谢观赏。

相关文章

  • MySQL如何配置主从复制,如何修复主从复制出现的异常?

    MySQL如何配置主从复制,如何修复主从复制出现的异常? 一、什么是Mysql主从复制 MySQL主从复制是其最重...

  • MySQL-主从复制&读写分离

    零、本文纲要 一、MySQL主从复制 主从复制 主从复制过程 配置主从复制 二、MySQL读写分离 读写分离 Sh...

  • Mysql 主从复制

    Mysql 主从复制 MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据...

  • 主从复制 & MHA

    一,mysql主从复制 (1)场景一(主从复制 _ 全新环境下) (2)场景二(主从复制 _ mysql已经使用一...

  • mysql主从复制

    构建MySQL主从复制 MySQL的主从复制和mysql的读写分离两者有着紧密联系,数据的读写分离实在主从复制的基...

  • Spring Data JPA 使用主从数据源

    Mysql 配置主从复制 参考:Mysql主从复制-半同步复制[https://www.jianshu.com/p...

  • MySQL集群篇

    1 集群之主从复制 1.1 主从复制概述 MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群...

  • 深度探索MySQL主从复制原理

    概要 MySQL Replication (MySQL 主从复制) 是什么? 为什么要主从复制以及它的实现原理是什...

  • 【转】MySQL 8.0复制改进

    1 - MySQL主从复制模型 我们从最基本的主从复制模型开始说起,下图是最经典的MySQL主从复制架构图: My...

  • mysql主从代理

    mysql主从复制+读写分离 环境: mysql主:193.168.1.1 mysql从:193.168.1.2 ...

网友评论

      本文标题:MYSQL主从复制

      本文链接:https://www.haomeiwen.com/subject/qtgtfxtx.html