Mysql主从配置
优先处理
如果之前有安装过只有主库的Mysql,需要先
1. 关闭管理服务
2. 删除环境变量
3. 彻底删除文件
4. 删除注册表等
1.下载解压版
先从https://dev.mysql.com/downloads/mysql/下载自己所需要的版本,我这边下载的都是5.7.27版本。
也可以下载不同版本的,但是主库的版本号一定要比从库的版本号高
我这边都是下载同个版本,直接修改文件名命名。
2.修改文件夹命名
先不要配环境变量!!!!!!!!!!!!!!!配了请自行删除!!!!
以D盘为主
新建一个Mysql文件夹
把下载后的压缩包解压后放入文件夹,复制一份,修改命名,
我这边是为了方便区分主从,1为主,2为从。如图:
3.修改主从my.ini配置文件
修改**主库的my.ini文件:
默认目录是没有my.ini文件**,可以先新建一个my.txt文件,
将下列复制到里面,保存,修改后缀名为ini格式。
[client]
port=3306
default-character-set=utf8
[mysqld]
#主库配置
server_id=1
log_bin=master-bin
log_bin-index=master-bin.index
#端口
port=3306
character_set_server=utf8
#解压目录
basedir=D:\Mysql\mysql-5.7.27-1winx64
#解压目录下data目录
datadir=D:\Mysql\mysql-5.7.27-1winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
D:\Mysql\mysql-5.7.27-1winx64\bin\mysqld.exe
修改**从库的my.ini文件:
默认目录是没有my.ini文件**,可以先新建一个my.txt文件,
将下列复制到里面,保存,修改后缀名为ini格式。
[client]
port=3307
default-character-set=utf8
[mysqld]
#从库配置
server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
#端口
port=3307
character_set_server=utf8
#解压目录
basedir=D:\Mysql\mysql-5.7.27-2winx64
#解压目录下data目录
datadir=D:\Mysql\mysql-5.7.27-2winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
D:\Mysql\mysql-5.7.27-2winx64\bin\mysqld.exe
3.主库cmd命令
①从主库bin目录地址栏输入cmd直接用管理员身份进入命令提示符
②按顺序从上到下输入对应的命令:↓
(其中加"//"均为注释,不用复制。)
注:
其中的 slave 为从库mysql的服务名称
//安装路径:
mysqld --install master --defaults-file="D:\Mysql\mysql-5.7.27-1winx64\my.ini"
//出现service successfully installed则表示命令执行成功。
注:
上面安装失败的原因有:第一没有以管理员的身份进入,第二没有进入bin目录下。
//初始化:
mysqld --initialize-insecure --user=master
//启动主库:
net start master
如果启动失败,请:
1.用mysqld remove master命令移除
2.删除文件夹中的data整个文件夹
3.重新按上面顺序再来一次。
//进入主库,默认密码为空,直接回车键进入。
mysql -P3306 -uroot –p
//给从库授权 create user “账号”@“localhost” identified by “密码”
create user "slave"@"localhost" identified by "slave";
//赋予管理权限
grant all privileges on *.* to "slave"@"localhost";
//刷新权限
flush privileges;
//显示主库状态
show master status;
此时会出现:
此时不要关闭这个命令框,可以先截图保存你的File和Position名。
File和Position是随机不固定的。此时不要关闭主库
//查看端口号:
show global variables like 'port';
//查看server_id:
show variables like 'server_id';
主从的端口号跟server_id要不一致!!!
4.从库cmd命令
①从从库bin目录地址栏输入cmd直接用管理员身份进入命令提示符
**
②按顺序从上到下输入对应的命令:↓
(其中加"//"均为注释,不用复制。)
注:
其中的 slave 为从库mysql的服务名称
//安装路径
mysqld --install slave --defaults-file="D:\Mysql\mysql-5.7.27-2winx64\my.ini"
//出现service successfully installed则表示命令执行成功。
注:
此处安装失败的原因有:第一没有以管理员的身份进入,第二没有进入bin目录下。
//设置从库名
mysqld --initialize-insecure --user=slave
//启动从库
net start slave
如果启动失败,请:
1.用mysqld remove slave命令移除
2.删除文件夹中的data整个文件夹
3.重新按上面顺序再来一次。
//进入从库,默认密码为空,直接回车键进入。
mysql -P3307 -uroot –p
//停止从库
stop slave;
//建立主从连接并告知二进制文件名与位置,
其中master-bin.000002和762都是来源于上面主库的信息
change master to master_host="localhost", master_port=3306, master_user="slave", master_password="slave", master_log_file="master-bin.000002",master_log_pos=762;
//启动从库
start slave;
//查看从库状态,出现上图所示2个Yes说明配置成功,否则失败。
show slave status\G
此时从库配置完毕!!!
//查看端口号:
show global variables like 'port';
//查看server_id:
show variables like 'server_id';
主从的端口号跟server_id要不一致!!!
5.测试主从
①在主库命令行中输入:
//创建一个user的数据库
create database user;
//显示数据库
show databases;
②在从库命令行中输入:
//显示数据库
show databases;
此时两边都有显示刚新建的数据库即主从配置成功!!
//查看端口号:
show global variables like 'port';
//查看server_id:
show global variables like 'port';
主从的端口号跟server_id要不一致!!!
使用Navicat测试:
①主库连接:
成功连接
②从库连接:
修改密码:
//括号里的就是新密码
set password for root@localhost=password('root');
完美成功!
读后有收获可以支付宝请作者喝咖啡: