Windows下MySQL多实例安装/主从复制/重置密码

时间:2023-01-27 19:38:49

Windows创建MySQL多实例

安装MYSQL和实例1

  1. 运行mysql-installer-community-5.7.16.0.msi
  2. 选择组件
    1. MySQL Server 5.7.16 – X64
    2. MySQL Utilities 1.6.4 – X64
    3. MySQL Workbench 6.3.7 – X64
    4. 执行安装
    5. 配置端口3306
    6. Windows Service Name设置为MYSQL

复制实例

  1. 将C:\ProgramData\MySQL\MySQL拷贝为MYSQL1和MYSQL2文件夹
  2. 修改各文件夹中的my.ini
    1. 配置my.ini的端口号MYSQL1为3306、MYSQL2为3307
    2. 配置my.ini中的路径为MYSQL1和MYSQL2对应路径
    3. 创建服务
      1. mysqld -install mysql1 --defaults-file="C:\ProgramData\MySQL\MySQL1\my.ini"
      2. mysqld -install mysql2 --defaults-file="C:\ProgramData\MySQL\MySQL2\my.ini"
      3. 启动服务
        1. net start mysql1
        2. net start mysql2

MySQL Master/Slave配置

主从机上使用相同的usr账户和密码并同时赋予REPLICATION SLAVE和REPLICATION CLIENT权限,前者用于数据同步,后者用于监视SLAVE同步状况:

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO usr@'192.168.0.%' IDENTIFIED BY 'pwd';

将主服务器数据dump/export,然后在从数据中import/restore。如果使用Workbench的export和import功能注意import的时候存储过程和方法因为不包含任何Scheme操作或被忽略,需要手动执行对应sql文件以进行创建。

然后执行同步:

C:\Program Files\MySQL\MySQL Server\bin>mysqlreplicate --master=usr:pwd@192.168.0.1 --slave=user:pwd@192.168.0.2 --rpl-user=usr:pwd

错误及解决办法

  1. ERROR: The slave’s server_id is the same as the master.

将主服务器的my.ini配置中Server_id=1修改Server_id=2

  1. ERROR: Master must have binary logging turned on.

在从服务器的my.ini配置中启用二进制日志

# Binary Logging.

# log-bin

log-bin=mysql-bin

  1. ERROR: The slave’s UUID is the same as the master.

在从服务器数据文件夹Data中修改auto.cnf文件中的server-uuid

[auto]

server-uuid=b1a3dd23-edc7-11e6-81b8-480fcf275eaf

MySQL忘记root密码

  1. 在my.ini配置文件[mysqld]下增加skip-grant-tables并重启MySQL服务
  2. 执行如下sql

use mysql;

update MySQL.user set authentication_string=password('rootpassword') where user='root' ;

  1. 将my.ini配置文件中的skip-grant-tables注释或删除并重启MySQL服务