1、先需要去官网下载mysql安装包
https://dev.mysql.com/downloads/mysql/
2、建立2个文件夹,复制mysql-8.0.33-winx64.zip将压缩包解压到这2个文件夹中
3、现在master文件夹中创建配置my.ini文件,配置如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 服务器标识ID
server-id=1
#二进制日志文件格式
log-bin=mysql-bin
#binlog日志格式
binlog_format=mixed
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:/tools/mysql/master
# 设置mysql数据库的数据的存放目录
datadir=E:/tools/mysql/master/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
4、新建一个data下
5、以管理员身份运行cmd命令,进入bin文件夹下,接着执行
mysqld -install master
执行完会显示 Service successfully installed.
!
6、接着接着执行初始化命令:
mysqld --initialize --console
执行完会显示初始密码!#AE>takB6&H.(每个人的不同)
7、接着启动服务
net start master
mysql -P3306 –uroot –p
接着对初始化的密码做修改,初始密码太复杂,不容易记住!
修改账户密码加密规则并更新用户密码:(以下可以直接复制)
//修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
//刷新权限
FLUSH PRIVILEGES;
//输入新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
//刷新权限
FLUSH PRIVILEGES;
9、接着安装从数据库
在slave文件夹中创建配置my.ini文件,配置如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 服务器标识ID
server-id=2
#二进制日志文件格式
log-bin=mysql-bin
# 从库二进制日志
relay-log=mysql-relay
#binlog日志格式
binlog_format=mixed
#设置3307端口
port = 3307
# 设置mysql的安装目录
basedir=E:/tools/mysql/slave
# 设置mysql数据库的数据的存放目录
datadir=E:/tools/mysql/slave/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
10、新建一个data下
11、以管理员身份运行cmd命令,进入E:\tools\mysql\slave\bin文件夹下,接着执行
mysqld -install slave
执行完会显示 Service successfully installed.
12、接着执行,完成初始化,完成从库安装
mysqld --initialize --console
从库密码:a:3wNYh?islz
接着对初始化的密码做修改,初始密码太复杂,不容易记住!
修改账户密码加密规则并更新用户密码:(以下可以直接复制)
//修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
//刷新权限
FLUSH PRIVILEGES;
//输入新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
//刷新权限
FLUSH PRIVILEGES;
13、连接从库
net start slave
mysql –P3307 -uroot –p
15、进行主从配置
先需要切换到E:\tools\mysql\master\bin,执行以下
show master status \G
切换至主库bin目录(E:\tools\mysql\master\bin),登录主库,创建新用户
create user 'xm'@'localhost' identified by '123456';
grant all privileges on *.* to 'xm'@'localhost';
刷新权限:
mysql>FLUSH PRIVILEGES;
接着确认位点 记录下文件名以及位点
show master status;
17、切换到从库的bin 目录E:\tools\mysql\slave\bin,
进行登录
`mysql -P3307 -uroot -p`
18、修改从库指向到主库,使用上一步记录的文件名以及位点
change master to master_host='localhost',
master_port=3306,
master_user='xm',
master_password='123456',
master_log_file='mysql-bin.000002',
master_log_pos=1153;
19、启动同步
START SLAVE;
show slave status \G;
Slave_IO_Runing和Slave_SQL_Runing字段值都为Yes,表示同步配置成功。
21、在从库中也要建立对应的用户
mysql>create user 'xm'@'localhost' identified by '123456';
mysql>grant all privileges on *.* to 'xm'@'localhost';
刷新权限:
mysql>FLUSH PRIVILEGES;
完成!!
22、验证:
1、用navicat连接主库
2、先建一个数据库,
create DATABASE xm;
3、再连接从库
4、这时发现已经将主库建的xm库,已经同步过来了
分割线===========
如果出现问题,请看下面,没出现,请忽略
遇到的问题:
1、如果在从库中show slave status \G;查看显示这样,说明主从没有配置成功
解决办法:
(1)先在主库下检查自己密码链接方式:
SELECT plugin FROM mysql.user where user = ‘xm’;
发现是密码的连接方式为caching_sha2_password,所有导致了主从失败。接下来进行整改,执行下来语句:
mysql> ALTER USER 'xm'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
这时将改为了 mysql_native_password方式。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b511884bee542c0a72934a1b0200687.png)
(2)接着连接从库
切换到从库的bin 目录E:\tools\mysql\slave\bin,
进行登录
```sql
mysql -P3307 -uroot -p
#先停止从库
mysql> stop slave;
#重置master
mysql> reset master;
#配置
mysql> change master to master_host='localhost',
-> master_port=3306,
-> master_user='xm',
-> master_password='123456',
-> master_log_file='mysql-bin.000002',
-> master_log_pos=1153;
#重启
mysql> start slave;