最近配置mysql5.7主从复制的时候碰到了些问题,老老实实按老版本的步骤配置会有错误,后来自己查看了官方文档,才解决了问题,在这里总结一下5.7的配置步骤,

大体步骤跟老版本的还是一样的,只是有一些小区别,下面进行具体介绍。

官方文档:http://dev.mysql.com/doc/refman/5.7/en/replication.html

系统环境:win7

我只安装了mysql server,其他配套工具没安装。安装后发现根目录下有一个my-default.ini文件,请把该文件改名成my.ini, 打开这个文件,文件内容如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at % of total RAM for dedicated server, else %.
# innodb_buffer_pool_size = 128M
# server_id = .....
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# bin log file name of the log to create
# log_bin= .....
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = ..... # Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

把如下几个属性改动一下,

server_id =  注意这个101是唯一标识你这个mysql服务器的,一般取你电脑ip的最后几位,以便好区分。
log_bin=mysql-bin 注意mysql-bin是一个存放二进制log文件的路径,我这里指定了一个mysql当前安装目录的mysql-bin文件夹
port=3306     3306是你设定的端口

改完之后在mysql command line client(mysql命令行客户端)执行如下两个命令中一个,初始化data目录

在window系统:
mysqld --initialize-insecure; 解释:初始化data目录的同时,会自动生成无密码的root用户,
mysqld --initialize; 解释:初始化data目录的同时,会自动生成带随机密码的root用户,
在 Unix 或者Unix相关,相似的系统:
mysqld --initialize --user=mysql
bin/mysqld --initialize-insecure --user=mysql

如上操作完成后,需要用上面生成的用户名登录服务,如下:

  • 如果你用 --initialize 初始化data目录,请用如下命令登录服务

     mysql -u root -p
    执行上面命令,会提示输入密码,输入随机生成的密码即可。

    如果你不知道这个随机密码,请查看error log文件查找这个随机密码。

  • 如果用 --initialize-insecure 初始化data目录,请用root用登录,并不需要输入密码就可以登录,如下命令:

     mysql -u root --skip-password

用没有密码的root用户登录后可以给这个用户设置密码,设置方法如下命令:

 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

另外,如果 mysqld 无法识别你的mysql安装目录和mysql数据存放目录,请手工指定:方法有二

第一种:即在输入命令的时候多加两个参数--basedir和--datadir,具体如下

mysqld --initialize --user=mysql
--basedir=your mysql install dir e.g:/opt/mysql/mysql
        --datadir=your mysql data dir e.g:/opt/mysql/mysql/data

第二种:在你的my.ini文件增加两个属性:

basedir= you mysql install dir e.g:/opt/mysql/mysql
datadir=you mysql data dir e.g:/opt/mysql/mysql/data

详细请参考:http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

配置完后你可以重启服务了,命令:mysqld restart --console;或者手动关掉 mysqld进程后执行命令:mysqld --console;。

请用同样的方法设置 master和slave但是两者的端口要不同。

至此,剩下的操作跟老版本一样了,剩下的操作请参考其他文章,例如[z]如何在一台windows主机上搭建mysql主从复制 这篇文件,从如下文字开始:

、在主库添加一个用户 repl 并指定replication权限
create user 'repl'@'127.0.0.1' identified by 'asdf'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。 、保持主从mysql的test数据库初始状态一致。 .....................

===完====

下面的附加信息也许你会用到,或者碰到这些问题:

1、用 show variables like '%log_bin%';查看状态:

配置失败的状态如下:

+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
6 rows in set, 1 warning (0.01 sec)

配置成功的类似是如下:

+---------------------------------+---------------------------------------------
-----------------+
| Variable_name | Value
|
+---------------------------------+---------------------------------------------
-----------------+
| log_bin | ON
|
| log_bin_basename | C:\Program Files\MySQL\MySQL Server 5.7\data
\mysql-bin |
| log_bin_index | C:\Program Files\MySQL\MySQL Server 5.7\data
\mysql-bin.index |
| log_bin_trust_function_creators | OFF
|
| log_bin_use_v1_row_events | OFF
|
| sql_log_bin | ON
|
+---------------------------------+---------------------------------------------
-----------------+
6 rows in set, 1 warning (0.01 sec)

2、如果执行mysqld --console,报类似如下错,手动停掉mysqld进程后再执行。

--06T13::.951203Z  [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
umentation for more details).
--06T13::.951203Z [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E
RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will
be merged with strict mode in a future release.
--06T13::.951203Z [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s
et.
--06T13::.951203Z [Warning] Insecure configuration for --secure-file
-priv: Current value does not restrict location of generated files. Consider set
ting it to a valid, non-empty path.
--06T13::.952203Z [Note] mysqld (mysqld 5.7.-log) starting as proc
ess ...
--06T13::.976205Z [Note] InnoDB: Mutexes and rw_locks use Windows in
terlocked functions
--06T13::.976205Z [Note] InnoDB: Uses event mutexes
--06T13::.977205Z [Note] InnoDB: Memory barrier is not used
--06T13::.977205Z [Note] InnoDB: Compressed tables use zlib 1.2.
--06T13::.977205Z [Note] InnoDB: Number of pools:
--06T13::.978205Z [Note] InnoDB: Not using CPU crc32 instructions
--06T13::.005206Z [Note] InnoDB: Initializing buffer pool, total siz
e = 128M, instances = , chunk size = 128M
--06T13::.019207Z [Note] InnoDB: Completed initialization of buffer
pool
--06T13::.092211Z [Note] InnoDB: Highest supported file format is Ba
rracuda.
--06T13::.239220Z [Note] InnoDB: Creating shared tablespace for temp
orary tables
--06T13::.240220Z [Note] InnoDB: Setting file '.\ibtmp1' size to
MB. Physically writing the file full; Please wait ...
--06T13::.450232Z [Note] InnoDB: File '.\ibtmp1' size is now MB.
--06T13::.453232Z [Note] InnoDB: redo rollback segment(s) found.
redo rollback segment(s) are active.
--06T13::.453232Z [Note] InnoDB: non-redo rollback segment(s) are
active.
--06T13::.463233Z [Note] InnoDB: 5.7. started; log sequence number --06T13::.464233Z [Note] InnoDB: Loading buffer pool(s) from C:\Prog
ram Files\MySQL\MySQL Server 5.7\data\ib_buffer_pool
--06T13::.464233Z [Note] Plugin 'FEDERATED' is disabled.
--06T13::.464233Z [Note] InnoDB: not started
mysqld: Table 'mysql.plugin' doesn't exist
--06T13::.465233Z [ERROR] Can't open the mysql.plugin table. Please
run mysql_upgrade to create it.
--06T13::.478233Z [Note] InnoDB: Buffer pool(s) load completed at
::
--06T13::.586240Z [Warning] Gtid table is not ready to be used. Tabl
e 'mysql.gtid_executed' cannot be opened.
--06T13::.609241Z [Warning] Failed to set up SSL because of the foll
owing SSL library error: SSL context is not usable without certificate and priva
te key
--06T13::.609241Z [Note] Server hostname (bind-address): '*'; port: --06T13::.611241Z [Note] IPv6 is available.
--06T13::.612241Z [Note] - '::' resolves to '::';
--06T13::.612241Z [Note] Server socket created on IP: '::'.
--06T13::.615241Z [Warning] Failed to open optimizer cost constant t
ables --06T13::.617241Z [ERROR] Fatal error: Can't open and lock privilege
tables: Table 'mysql.user' doesn't exist
--06T13::.619242Z [ERROR] Aborting --06T13::.619242Z [Note] Binlog end
--06T13::.640243Z [Note] Shutting down plugin 'ngram'
--06T13::.640243Z [Note] Shutting down plugin 'partition'
--06T13::.640243Z [Note] Shutting down plugin 'BLACKHOLE'
--06T13::.641243Z [Note] Shutting down plugin 'ARCHIVE'
--06T13::.641243Z [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
--06T13::.641243Z [Note] Shutting down plugin 'MRG_MYISAM'
--06T13::.641243Z [Note] Shutting down plugin 'MyISAM'
--06T13::.641243Z [Note] Shutting down plugin 'INNODB_SYS_VIRTUAL'
--06T13::.642243Z [Note] Shutting down plugin 'INNODB_SYS_DATAFILES' --06T13::.642243Z [Note] Shutting down plugin 'INNODB_SYS_TABLESPACE
S'
--06T13::.643243Z [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_CO
LS'
--06T13::.643243Z [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
--06T13::.643243Z [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
--06T13::.643243Z [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
--06T13::.643243Z [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
--06T13::.644243Z [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS
'
--06T13::.644243Z [Note] Shutting down plugin 'INNODB_SYS_TABLES'
--06T13::.644243Z [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE
'
--06T13::.644243Z [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE
'
--06T13::.644243Z [Note] Shutting down plugin 'INNODB_FT_CONFIG'
--06T13::.645243Z [Note] Shutting down plugin 'INNODB_FT_BEING_DELET
ED'
--06T13::.645243Z [Note] Shutting down plugin 'INNODB_FT_DELETED'
--06T13::.645243Z [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STO
PWORD'
--06T13::.645243Z [Note] Shutting down plugin 'INNODB_METRICS'
--06T13::.645243Z [Note] Shutting down plugin 'INNODB_TEMP_TABLE_INF
O'
--06T13::.646243Z [Note] Shutting down plugin 'INNODB_BUFFER_POOL_ST
ATS'
--06T13::.646243Z [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LR
U'
--06T13::.646243Z [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
--06T13::.646243Z [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_
RESET'
--06T13::.646243Z [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX' --06T13::.647243Z [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
--06T13::.647243Z [Note] Shutting down plugin 'INNODB_CMPMEM'
--06T13::.647243Z [Note] Shutting down plugin 'INNODB_CMP_RESET'
--06T13::.647243Z [Note] Shutting down plugin 'INNODB_CMP'
--06T13::.647243Z [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
--06T13::.648243Z [Note] Shutting down plugin 'INNODB_LOCKS'
--06T13::.648243Z [Note] Shutting down plugin 'INNODB_TRX'
--06T13::.648243Z [Note] Shutting down plugin 'InnoDB'
--06T13::.648243Z [Note] InnoDB: FTS optimize thread exiting.
--06T13::.648243Z [Note] InnoDB: Starting shutdown...
--06T13::.748249Z [Note] InnoDB: Dumping buffer pool(s) to C:\Progra
m Files\MySQL\MySQL Server 5.7\data\ib_buffer_pool
--06T13::.751249Z [Note] InnoDB: Buffer pool(s) dump completed at
::
--06T13::.137328Z [Note] InnoDB: Shutdown completed; log sequence nu
mber
--06T13::.138328Z [Note] InnoDB: Removed temporary tablespace data f
ile: "ibtmp1"
--06T13::.138328Z [Note] Shutting down plugin 'MEMORY'
--06T13::.138328Z [Note] Shutting down plugin 'CSV'
--06T13::.139328Z [Note] Shutting down plugin 'sha256_password'
--06T13::.139328Z [Note] Shutting down plugin 'mysql_native_password
'
--06T13::.139328Z [Note] Shutting down plugin 'binlog'
--06T13::.139328Z [Note] mysqld: Shutdown complete

原创文章,转载请注明:http://www.cnblogs.com/langtianya/p/5185577.html

相关:

centos下mysql集群配置例子

centos下mysql集群配置例子

最后简单介绍一下主从复制和读写分离

1 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个: 一是作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作; 二是可在从数据库作备份、数据统计等工作,这样不影响主数据库的性能;

2 读写分离,是指读与写分别使用不同的数据库,当然一般是在不同服务器上的;在同一台服务器上的读写环境,估计只是用来测试吧。 一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和数据库性能;当然,其中 会涉及到如何保证读写数据库的数据一致,这个就可以利用主从复制技术来完成。 一般应用场合为:业务吞吐量很大

相关:MYSQL主主切换(主库宕机)

mysql一主多从宕机从库切换主继续和从同步教程

MySQL5.7 Replication主从复制配置教程的更多相关文章

  1. MySQL5.6 Replication主从复制(读写分离) 配置完整版

    MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...

  2. MySql5.7多实例配置教程

    最近朋友在搞在Linux上配置MySql5.7多实例教程,在网上查询了很多资料,一直报各种各样的错误,后来在网上搜了一篇博客,根据其配置,最近是配置成功了 参考配置连接:https://blog.cs ...

  3. window7环境MySql5.7 zip安装配置教程

    1.将zip压缩包解压到一个目录下,并改名为mysql5.7 我的是放在D:\web\mysql5.7下 2.修改my-default.ini文件 下面几项是必填的,否则无法启动 basedir = ...

  4. mysql5.7在windows下面的主从复制配置

    目标:自动同步Master 服务器上面的Demo数据库到Slave 服务器的Demo数据库中. 对于一些操作系统比较强而使用频率又不高的东西,往往好久不去弄就忘记了,所以要经常记录起来,方便日后查阅. ...

  5. Redis集群主从复制(一主两从)搭建配置教程【Windows环境】

    如何学会在合适的场景使用合适的技术方案,这值得思考. 由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基 ...

  6. centos7下配置mysql5.7.24主从复制

    前置条件 准备两台服务器(可以是虚拟机),系统为centos7 此处演示的两台服务器:192.168.8.134.192.168.8.135 第一步:安装mysql5.7.24 先在两台服务器上安装m ...

  7. mysql5.7.26做主从复制配置

    一.首先两台服务器安装好mysql数据库环境 参照linux rpm方式安装mysql5.1 https://www.cnblogs.com/sky-cheng/p/10564604.html 二.主 ...

  8. centos 7 Mysql5.7 主从复制配置

    1.环境 Centos 7 Mysql 5.7 Master  192.168.1.71 Slave01 192.168.1.72 2.分别配置master,slave01 # vi /etc/my. ...

  9. MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64、MySQL5.7)

    MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64.MySQL5.7) 安装包版本 1)     VMawre-workstation版本包 地址: https://m ...

随机推荐

  1. win7下php5.6安装redis扩展

    redis扩展下载 http://windows.php.net/downloads/pecl/snaps/redis/ 查看phpinfo()信息 Compiler Architecture 选择合 ...

  2. 【BZOJ-4281】Związek Harcerstwa Bajtockiego 树上倍增LCA

    4281: [ONTAK2015]Związek Harcerstwa Bajtockiego Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 167  ...

  3. oracle merge into 的例子

    内容来自 oracle 11g 实用教程 郑阿奇等编 在 oracle 11g中有merge语句,用于根据与原表连接的结果,对目标表执行插入,更新,或者删除操作.例如,根据在一个表中找到的差异在另一个 ...

  4. NAnt打包使用MSTest进行单元测试的配置

    NAnt比较老的持续集成工具了,对于它的文章都停留在09年左右的,只有一些github上的老项目上可以很多的看见是使用这个进行集成的,估计这个当时老外用的非常多吧. 如题,NAnt如果使用单元测试,用 ...

  5. 洛谷P1774 最接近神的人

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...

  6. 用python虚拟串口

    在linux下调试串口程序,无奈下面的硬件还没到位,所以,想着自己模拟一个串口用用.试了下下面这段代码: #!/usr/bin/env python #coding=utf-8 import pty ...

  7. cantor三分集

    值得一提的是,第一次听说cantor三分集是在数字电路课上,然而数电是我最不喜欢的课程之一...... 分形大都具有自相似.自仿射性质,所以cantor三分集用递归再合适不过了,本来不想用matlab ...

  8. Mysql: ERROR 1030 (HY000): Got error 28 from storage engine

    今天帮同事解决一个问题的时候,遇到了下面的异常: ERROR 1030 (HY000): Got error 28 from storage engine 我们的数据库是mysql,我们的sql语句是 ...

  9. Objective-C学习笔记类目、协议

    不是所有的方法都可以被覆盖的!比如:intValue就不能被覆盖!! 原因正在查找中! 别人的电脑上却可以! 类目.h件 #import <Foundation/Foundation.h> ...

  10. FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请

    FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请 But official insists 2018 Cup will stay in ...