MySQL 5.6和 5.7下 修改同步账号密码:不一样

Mac OS 10.14.6安装MySQL5.7并修改默认字符集 一、官网下载MySQL5.7 官网地址:https://downloads.mysql.com/archives/community/ 如果下载速度慢的话,建议复制到迅雷、比特彗星等多线程下载工具进行下载。 二、安装MySQL镜像 找到下载的dmg镜像,双击装载。 会提示一次输入系统密码验证,输入即可。 安装完毕后会提示要一个弹窗权限,给它即可。 接着会弹出安装MySQL时随机设... 阅读详情

【引言】 

大家都知道,MySQL配置了同步,通用账号密码在master做了修改,slave会自动同步过来。但有一个账号除外,那就是同步账号。

 

是不是第一感觉不太对?

 

为啥主从配置下的其他账号密码的修改都能同步,即使是root@local这样的本地账号都能同步至从库,同步账号就不行?

 

大家都知道,MySQL账号信息是保存在数据字典mysql.user中,按照道理来说,mysql.user内容的修改是会同步至从库。

 

先看一段在配置同步过程中change master的一段官方介绍:

 

MySQL 5.6官方介绍, 链接:

https://dev.mysql.com/doc/refman/5.6/en/change-master-to.html

CHANGE MASTER TO changes the parameters that the replica uses for connecting to the replication source server, for reading the source's binary log, and reading the replica's relay log. It also updates the contents of the replication metadata repositories (see Section 17.2.2, “Relay Log and Replication Metadata Repositories”). CHANGE MASTER TO requires the SUPER privilege.

In MySQL 5.6.11 and later,gtid_next must also be set to AUTOMATIC (Bug #16062608).

看到这里应该明白了,这里以配置了gtid的同步配置为例

change master to

master_host='192.168.0.110',

master_user='replication_account',

master_password='user_password',

master_port=3306,

master_auto_position=1;

 

按照上述MySQL官方文档解释,从库通过CHANGE MASTER TO 中的上述参数来做三件事:连接主库、读取主库binary log,读取从库relay log。

 

可以得出原因说明:

当主库master的同步账号发成改变,从库中的change master to中的同步账号配置在第一个阶段connecting master server时,会连接不通,原因为change master to 的相关配置是存放在从库的复制元数据存储库(replication metadata repositories)中,而复制元数据存储库这时还是保存的原来的同步账号密码。

 

所以,主库修改了同步账号,从库需要做一次updates the contents of the replication metadata repositories,才能保证从库对主库的连接成功,Slave_IO_Running才会由 connecting状态变为yes正常状态。

 

那如何修改同步账号呐?

 

再接着看官方文档,链接:

https://dev.mysql.com/doc/refman/5.6/en/change-master-to.html

 

Options not specified retain their value, except as indicated in the following discussion. Thus, in most cases, there is no need to specify options that do not change. For example, if the password to connect to your MySQL source has changed, issue these statements to tell the replica about the new password:

 

STOP SLAVE; -- if replication was running 

CHANGE MASTER TO MASTER_PASSWORD='new3cret'; 

START SLAVE; -- if you want to restart replication

 

MASTER_HOST, MASTER_USER, MASTER_PASSWORD, and MASTER_PORT provide information to the slave about how to connect to its master:

 

Note: Replication cannot use Unix socket files. You must be able to connect to the master MySQL server using TCP/IP.

 

MASTER_USER and MASTER_PASSWORD are the user name and password of the account to use for connecting to the source. If you specify MASTER_PASSWORD, MASTER_USER is also required. The password used for a replication user account in a CHANGE MASTER TOstatement is limited to 32 characters in length; if the password is longer, the statement succeeds, but any excess characters are silently truncated. This is an issue specific to MySQL Replication, which is fixed in MySQL 5.7. (Bug #11752299, Bug #43439)

 

文档写的也很清晰,修改从库的MASTER_PASSWORD即可,见上述标蓝处。

 

以下为MySQL 5.6 双主架构下如何修改同步账号密码为例,来说明如何修改同步账号。

 

MySQL5.6版本下修改MySQL双主架构下同步账号密码步骤

 

步骤1:分别登陆master,slave 检查当前同步状态知否一直/正常

SHOW MASTER STATUS;

SHOW SLAVE STATUS;

 

步骤2:在master节点上修改同步账号密码

1) 检查同步账号

select host,user from mysql.user;

2) 检查同步账号权限(如同步账号为:’repl’@’%’)

show grants for ’repl’@’%’;

 

步骤3:在master节点上,修改同步账号repl

1)修改repl密码

grant replication slave on *.* to ’repl’@’%’ identified by ’New_password’;

 

2)确认账号生效:

select user,host,password from mysql.user where user='repl';

 

步骤4:在slave节点,修改同步密码

1)暂停同步过程

stop slave;

2)重新配置同步账号新密码

change master to

master_user='repl',

master_password='new_password;

3)重启同步过程

start slave;

4)检查同步状态

show slave status \G;

 

Master节点做一个insert插入测试表,验证从库是否同步数据

insert into testdb.tb1 values(2,'fred');

 

步骤5:在侯主中修改反向同步账号密码

重复上述步骤1 ~ 4即可。

 

MySQL双主架构下同步账号密码修改完成。

 

注意:

如果是单向主从同步,步骤1~4即结束,如果是主主同步,主主和侯主均需做上述步骤1~4。

文章到此还未结束。接着看。

 

以上步骤是针对MySQL5.6版本。

文章没完,接着看。

 

发问下:主流的版本MySQL5.7和8.0是否和5.6的同步账号密码修改方式一样?

 

我都这么问了,肯定不一样,不一样在什么地方呐?

 

继续看官方文档,链接:

https://dev.mysql.com/doc/refman/5.7/en/change-master-to.html

 

CHANGE MASTER TO changes the parameters that the replica uses for connecting to the replication source server, for reading the source's binary log, and reading the replica's relay log. It also updates the contents of the replication metadata repositories (see Section 16.2.4, “Relay Log and Replication Metadata Repositories”). CHANGE MASTER TO requires the SUPER privilege.

 

Prior to MySQL 5.7.4, the replication threads must be stopped, using STOP SLAVE if necessary, before issuing this statement. In MySQL 5.7.4 and later, you can issue CHANGE MASTER TO statements on a running replica without doing this, depending on the states of the replication SQL thread and replication I/O thread. The rules governing such use are provided later in this section.

 

这里可以看到和5.6版本的第一个不同的地方就是,MySQL 5.7.4及以后的版本以后的我们可以在线改同步账号了。不用像MySQL5.6一样做如下步骤:

STOP SLAVE; -- if replication was running 

CHANGE MASTER TO MASTER_PASSWORD='new3cret'; 

START SLAVE; -- if you want to restart replication

 

MySQL 5.7.4及以上版本怎么改同步账号?

接着看官网。

When using a multithreaded replica (in other words slave_parallel_workers is greater than 0), stopping the replica can cause “gaps” in the sequence of transactions that have been executed from the relay log, regardless of whether the replica was stopped intentionally or otherwise. When such gaps exist, issuing CHANGE MASTER TO fails. The solution in this situation is to issue START SLAVE UNTIL SQL_AFTER_MTS_GAPS which ensures that the gaps are closed.

Options not specified retain their value, except as indicated in the following discussion. Thus, in most cases, there is no need to specify options that do not change. For example, if the password to connect to your replication source server has changed, issue this statement to tell the replica about the new password:

 

CHANGE MASTER TO MASTER_PASSWORD='new3cret';

 

由上得知,MySQL 5.7.4及以上版本不需要做stop slave操作,因为MySQL 5.7.4及以上版本基本都开启了多线程复制multithreaded replica (in other words slave_parallel_workers is greater than 0),默认为10,。如果做了stop slave的操作,可能会导致从库上执行执行完relay log的事务序号不一致,此刻执行CHANGE MASTER TO的任何操作都会失败。

 

怎么办?

 

在MySQL 5.7.4及以上版本,如果不小心执行了stop slave操作,这时候如果

CHANGE MASTER TO MASTER_PASSWORD='new3cret'; 操作报错了;

 

不要着急,在从库执行START SLAVE UNTIL SQL_AFTER_MTS_GAPS即可,该操作能确保事务序号不一致情况消除。

然后再次执行CHANGE MASTER TO MASTER_PASSWORD='new3cret';即可。

 

MySQL 5.7.4及以上版本修改MySQL双主架构下同步账号密码步骤:

 

步骤1:分别登陆master,slave 检查当前同步状态知否一直/正常

SHOW MASTER STATUS;

SHOW SLAVE STATUS;

 

步骤2:在master节点上修改同步账号密码

1) 检查同步账号

select host,user from mysql.user;

2) 检查同步账号权限(如同步账号为:’repl’@’%’)

show grants for ’repl’@’%’;

 

步骤3:在master节点上,修改同步账号repl

1)修改repl密码

grant replication slave on *.* to ’repl’@’%’ identified by ’New_password’;

 

2)确认账号生效:

select user,host,password from mysql.user where user='repl';

 

步骤4:在slave节点,修改同步密码

1)重新配置同步账号新密码

change master to

master_user='repl',

master_password='new_password;

2)检查同步状态

show slave status \G;

 

步骤5:在侯主中修改反向同步账号密码

重复上述步骤1 ~ 4即可。

 

至此,文章结束。

 

【总结】

1. MySQL 5.6的同步账号还需要停启salve过程;到我MySQL 5.7.4及以后版本,则支持在线改;

2. 另,InnoDB cluster不需要,因为没有同步账号这一说话,数据一致性使用Paxos协议保障。

 

 

欢迎关注个人微信公众号“一森咖记”

 

近期热文

你可能也会对以下话题感兴趣。点击链接便可查看。

运维系列&数据库系列【仅供参考】:mysql5.7 默认不用密码登录,改成账号密码登录 mysql5.7 默认不用密码登录,改成账号密码登录 阅读详情

相关推荐

Netron显示自定义属性,按属性设置不同节点的颜色

本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系

Hi20240217的博客 1513

AndroidStudio 修改 Master Password

Android studio生成签名包的时候 要求输入 MasterPassword,结果忘了密码。 可以通过reset操作重置密码。 也可以修改。进入 Appearance&Behavior ->SystemSetting->Passwords如果忘记密码的话 就reset一下吧JetBrain 官网描述

初心 3万+

从零实现地震波场模拟:交错网格有限差分法核心代码精讲

本文详细介绍了从零实现地震波场模拟的核心技术,重点讲解了交错网格有限差分法的实现过程。通过速度-应力弹性波方程的离散化处理,结合代码实例演示了应力与速度更新的关键步骤,并分享了震源加载、稳定性条件等实用技巧,为计算地球物理学研究提供实践指导。

weixin_42556197的博客 410

MySQL主从复制(3)——Change Master参数详解

MySQL主从复制(3)——Change Master参数详解 在进行MySQL主从复制配置时,change master 用于配置和改变 slave 服务器用于连接 master 服务器的参数,以便 slave服务器读取 master 服务器的 binlog 及 slave 服务器的 relay log。同时更新 master.info 及 relay-log.info信息。执行该语句之前从服务器上如果 IO 线程和 SQL 线程已经启动,需要先停止(执行 stop slave 命令)。 一、change

睿思达DBA 1万+

Simulink机电仿真避坑指南:如何用MATLAB解决液压系统建模的3大典型问题

本文针对液压系统建模在Simulink动态仿真中常见的三大难题——参数物理意义缺失、模型收敛性差及性能优化瓶颈,提供了专业的MATLAB解决方案。文章详细阐述了如何从物理参数推导仿真模型、破解代数环与刚性系统问题,并分享了模型降阶与加速技巧,旨在帮助工程师构建精确高效的机电系统仿真模型。

o9p0q1的博客 295

NRF24L01模块的5个常见问题及解决方案:从信号干扰到功耗优化

本文深入探讨NRF24L01无线模块在STM32开发中的5大常见问题及解决方案,包括通信距离优化、数据丢失排查、电源噪声抑制、SPI通信故障处理以及低功耗设计。通过代码示例和电路图分析,提供实用的优化策略,帮助开发者提升无线通信的稳定性和效率。

weixin_28256233的博客 226

MySQL数据库之用户管理

在创建数据表的时候,我们有的时候需要使用另外一个表的结构或数据,如果一个个添加,过于繁琐,这时我们可以使用克隆。我们这里有一张初始的表。

qq_57377057的博客 1361

开关电源EMC整改案例-辐射骚扰

2.4.1 获得原始数据。同样的分析可以应用在差模电流的情况, 唯一不同的是, 两根导线的磁场分布是相反的, 磁 场互相抵消, 由于导线中的电流大小相等, 产生的磁场 H 大小相同, 在互相靠近的情况下, 在磁 环内的两个感应磁场大小相同、方向相反, 因此合成之后的感应磁场 B 几乎为 0,对任意一根导 线而言,相当于是一段“无感导线”,对差模电流不会产生任何抑制作用。众所周知, 共模电感的匝数越多, 感量越大, 按道 理来说对共模干扰电流的抑制也会越强烈,对抗辐射 也越有利,然而事实真的如此吗?

经营范围: CTA、SRRC、CCC、移动、电信、联通入库 3499

有关mysql用户名、密码的修改及 shcema 之间的关系

本文介绍了MySQL中用户、schema、数据库的概念,以及它们之间的关系和区别。用户是指可以连接到数据库服务器并执行一些操作的账户,每个用户都有一个用户名和一个密码,以及一些相关的属性和权限。Schema是指数据库的结构和组织,包括表、视图、索引、约束、触发器、存储过程等对象,每个schema都有一个名字,用来标识和区分不同的schema。数据库是指存储和管理数据的逻辑单元,每个数据库都有一个名字,用来标识和区分不同的数据库。

superzhang6666的博客 1982

深度强化学习-D3QN算法原理与代码

Dueling Double Deep Q Network(D3QN)算法结合了Double DQN和Dueling DQN算法的思想,进一步提升了算法的性能。如果对Doubel DQN和Dueling DQN算法还不太了解的话,可以参考我的这两篇博文:深度强化学习-Doubel DQN算法原理与代码和深度强化学习-Dueling DQN算法原理与代码,分别详细讲述了这两个算法的原理以及代码实现。本文就带领大家了解一下D3QN算法,代码链接见下方。 代码:https://github.com/indigo

weixin_46133643的博客 2万+

FineReport FCP模拟题五

新建决策报表,设置 移动端 格式,采用绝对布局。数据来源:FRDemo中的订单表/雇员表。

Davina_yu的博客 725

change master mysql_mysql主从复制-CHANGE MASTER TO 语法详解

配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息。CHANGEMASTERTOoption[,option]...option:MASTER_BIND='interface_name'MASTER_HOST='host_name'MASTER_USER='user...

weixin_33300279的博客 1587

银河麒麟V10等保加固清单:安全基线配置一篇搞定(附逐项检查表)

通过限制使用SSH直接以root身份登录,禁用公钥登录的方式加强SSH服务的安全性。更改SSH默认端口可在一定程度上防止被黑客使用大批量扫描方式攻击。通过修改SSH的配置文件限制可以使用SSH服务远程管理的主机。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 817

修改本地host立即生效_MySQL 5.6和 5.7_同步账号修改密码方式:真的不一样

【引言】大家都知道,MySQL配置了同步,通用账号密码在master做了修改,slave会自动同步过来。但有一个账号除外,那就是同步账号。是不是第一感觉不太对?为啥主从配置下的其他账号密码的修改都能同步,即使是root@local这样的本地账号都能同步至从库,同步账号就不行?大家都知道,MySQL账号信息是保存在数据字典mysql.user中,按照道理来说,mysql.user内容...

weixin_32260467的博客 365

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL 5.7 修改账号密码

不过似乎也有个新发现,那就是同样是root用户,可以为root用户设置,在本地连接和远程连接时可以设置不同的密码,话说有人这么玩吗,哈哈哈。

欧阳方超的专栏 1879

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mysql host本地无法登陆无密码登陆_MySQL 5.6和 5.7_同步账号修改密码方式:真的不一样...

【引言】大家都知道,MySQL配置了同步,通用账号密码在master做了修改,slave会自动同步过来。但有一个账号除外,那就是同步账号。是不是第一感觉不太对?为啥主从配置下的其他账号密码的修改都能同步,即使是root@local这样的本地账号都能同步至从库,同步账号就不行?大家都知道,MySQL账号信息是保存在数据字典mysql.user中,按照道理来说,mysql.user内容...

weixin_39753674的博客 206

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mysql 5.7 修改密码_MySQL修改账号密码方法大全

前言:在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。1.忘记 root 密码忘记 root 密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改 root 密码,之后再启用权限验证...

weixin_39755824的博客 908

MySQL主从同步 5.7

手动搭建MySQL主从同步 本次搭建主从同步的环境:阿里云CentOS 7.6 ,MySQL5.7。 服务器安装数据库,请参考我博客里的Centos安装mysql那篇文章。 场景介绍 本次将会搭建MySQL的主从同步,其中一台Master,一台Slave。 Master: IP:112.124.1.1 Port:3306 Slave1: IP:112.54.1.2 Port:3306 开始搭...

Bob's Blog 172

MySQL5.7 下载安装

一、下载 尽量使用压缩包解压缩方式安装,压缩包的解压后配置下环境变量就能使用。 如果使用安装程序(.msi安装程序)安装,卸载起来会比较麻烦。 下载地址链接,各版本下载链接 二、安装 1.解压缩 下载的zip压缩包解压缩(我的mysql解压缩安装位置为“D:\software\Programming\Env\mysql-5.7.28”)。解压缩后就是安装了。 2 配置环境变量 配置环境变量,这样就不用每次都到mysql的bin执行操作了。 新建一个MYSQL_HOME,变量值为MySQL的解压缩文件的bin

长生的梦呓 2383

mysql 5.7 修改账号密码

为了提高安全性 mysql5.7中user表的password字段已被取消,取而代之的事 authentication_string 字段,当然我们更改用户密码也不可以用原来的修改user表来实现了。下面简绍几种mysql5.7下修改root密码的方法(其他用户也大同小异)。法一:mysql> update mysql.user set authentication_string=password(

Shiwei_Xiong的博客 3万+

win11安装mysql5.7和mysql8共存

本文介绍了在Windows 11系统下同时安装MySQL 5.7.44和8.4.6绿色版的完整步骤。首先下载官方压缩包并解压到不同目录,为每个版本创建独立的my.ini配置文件并设置不同端口(3305/3306)。然后配置系统环境变量,以管理员身份初始化数据库并注册不同的服务名(如MySql84)。最后通过修改root密码完成安装,实现两个版本共存。文章特别强调了配置文件路径、服务名区分和端口设置等关键点,确保多版本MySQL能正常运行。

qq_42207996的博客 1076

mysql 更改密码 alter_MySQL修改账号密码方法大全

前言:在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。1.忘记 root 密码忘记 root 密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改 root 密码,之后再启用权限验证...

weixin_36453829的博客 4681

MySQL5.7主主同步修改密码

修改MySQL主主同步root密码

杨咩咩 2543

CentOS 7.5 使用 yum 方式安装 MySQL 5.7

CentOS 7.5 使用 yum 方式安装 MySQL 5.7 环境:CentOS 7.5 MySQL 5.7 1. 准备工作 CentOS 7 的 yum 源中默认是没有 MySQL 的,因为现在的 CentOS 7 中默认是安装 mariaDB 的。 首先应该将 MySQL 加入我们的 CentOS yum 源中。 首先下载 MySQL 的 repo 源: [root@m...

benarchen 的博客 4087

CentOS 7安装MySQL 5.7

安装MySQL的方式有多种,包括rpm安装以及下载压缩包再解压安装,本文主要介绍如何使用压缩包安装MySQL5.7   一、下载MySQL版本 采用MySQL的ommunity开源版本,专业版本需要收费。 1.mysql-5.7.23 官网地址:https://dev.mysql.com/downloads/file/?id=479097 拉下页面找到如图所示,右键方框选择复制链接: ...

w的博客 125

Ubuntu 下安装mysql5.7

Ubuntu 下安装mysql5.7 一. 安装mysql 在安装之前先更新一下软件源,以便安装最新版本 $ sudo apt-get update #更新软件源 之前设置了阿里镜像源,随便搜索都有很多教程,这里引用神奇的海马体的设置方法。 安装mysql,安装的是最新的5.7版本 $ sudo apt-get install mysql-server #安装mysql 3、启动和关闭mysql服务器: $ service mysql start #启动 $ service mysql stop

weixin_43868930的博客 5473
上一篇: 你应该知道的分布式系统得奠基石CAP理论
下一篇: Oracle 11g及12c+版本下为啥有些表不能exp导出?
db_murphy
博客等级 码龄11年 145粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值