MYSQL8解压版 windows 主从部署步骤及配置
一.安装MSYQL
这里只讲大概,详细步骤、my.ini文件、安装包等会在页尾文件中(正常情况按首个mysql安装,只是名字有区别)
1.主库my.ini配置
[mysqld]
#典型的值是5-6GB(8GB内存),8-11GB(16GB内存), 20-25GB(32GB内存),100-120GB(128GB内存)。 这里1GB=1024M 文本不能直接写GB
innodb_buffer_pool_size = 8192M
# mysql根目录
basedir = D:/mysql8-master
# 数据文件存放目录
datadir = D:/mysql8-master/data
# 端口,默认3306
port = 3306
# 服务实例的唯一标识(不能为英文)
server_id = 1
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character_set_server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#控制是否可以信任存储函数创建者(当初始化SQL有函数创建时)
log_bin_trust_function_creators=1
##慢查询(默认关闭)
#开启/关闭慢查询
slow_query_log = ON
#log-slow-queries:代表MYSQL慢查询的日志存储目录,此目录文件一定要有写权限;
slow-query-log-file= D:/mysql8-master/log/slow-log/mysql-slow.log
#最长执行时间(秒)(查询的最长时间,超过了这个时间则记录到日志中) .
long_query_time = 5
##bin-log(默认关闭)(主要用于主从搭建)(从数据库,没必要开启)
#指定binlog文件名和储存位置
log_bin= D:/mysql8-master/log/bin-log/mysql-bin
#binlog格式。有3个值可以选择:ROW:记录哪条数据被修改和修改之后的数据,会产生大量日志。STATEMENT:记录修改数据的SQL,日志量较小。MIXED:混合使用上述两个模式。CDC要求必须配置为ROW。
binlog_format=MIXED
#bin_log过期时间,超过该时间的log会自动删除(如想更长时间或者一直保留可更改天数或者直接注释掉这行)。
expire_logs_days=30
#binlog记录哪些数据库。如果需要配置多个库,重复配置多项。切勿使用逗号分隔。没有配置就是全部
#binlog_do_db=db_a
#binlog_do_db=db_b
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
2.从库my.ini
[mysqld]
#典型的值是5-6GB(8GB内存),8-11GB(16GB内存), 20-25GB(32GB内存),100-120GB(128GB内存)。 这里1GB=1024M 文本不能直接写GB
innodb_buffer_pool_size = 8192M
# mysql根目录
basedir = D:/mysql8-slave
# 数据文件存放目录
datadir = D:/mysql8-slave/data
# 端口,默认3306
port = 3307
# 服务实例的唯一标识(不能为英文)
server_id = 2
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character_set_server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#控制是否可以信任存储函数创建者(当初始化SQL有函数创建时)
log_bin_trust_function_creators=1
##慢查询
#开启/关闭慢查询
slow_query_log = ON
#log-slow-queries:代表MYSQL慢查询的日志存储目录,此目录文件一定要有写权限;
slow-query-log-file= D:/mysql8-slave/log/slow-log/mysql-slow.log
#最长执行时间(秒)(查询的最长时间,超过了这个时间则记录到日志中) .
long_query_time = 5
##bin-log(主从搭建)
# 关闭Binlog(开发电脑磁盘小,从库这里的日志感觉无用,但是线上还是建议开启)
skip-log-bin
#中继日志是连接mastert(主服务器)和slave(从服务器)的信息,它是复制的核心,I/O线程将来自master的binlog存储到中继日志中,中继日志充当缓冲,这样master不必等待slave执行完成就可以发送下一个binlog
relay_log=D:/mysql8-slave/log/relay-log/mysql-relay
#使得slave(从库)只读.只有用户拥有SUPER权限和在上面的slave线程能够修改数据.你可以使用此项去保证没有应用程序会意外的修改slave而不是master上的数据
read_only=1
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4
区别在于basedir、datadir、slow-query-log-file、bin_log/relay_log地址及bin_log处有些许变化
二.主从关联
1.查主库看logbin信息(主库运行)
show master status;
2.关联主库(从库运行)
change master to
master_host=’localhost’, #主库IP
master_user=’slaveUser’, #账号(可专门创造一个账号来进行同步)
master_password=’123456’, #密码
master_log_file=’mysql-bin.000004’, #1.步骤中File值
master_log_pos=943; #1.步骤中Position值
3.开启主从同步(从库运行)
start slave;
#stop slave; #停止主从同步
4.查询主从状态(从库运行)
show slave status;
主要看Slave_IO_Running 与 Slave_SQL_Running是否为YES,如果为NO问题排查:
1.查看data中auto.conf中的UUID是否重复
2.重启从库服务
3.万能大法(重启服务器)
三.当有一个mysql服务存在环境变量时(没试过,应该可以)
办法1.初始化和安装服务时指定配置文件
初始化:
mysqld --initialize-insecure --datadir=D:/mysql8-slave/data
安装服务:
mysqld -install MySQL8_MASTER --defaults-file=D:/mysql8-slave/my.ini
办法2.修改注册表
- 打开“运行”窗口,输入“regedit”打开注册表编辑器。
- 找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services"的路径。
- 在该路径下,找到对应的MYSQL服务名称,找到“ImagePath”键值,并对其进行编辑。
- 将“C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld”修改为实际的MySQL安装路径,替换\mysqld前面部分。
- 修改后,保存并退出注册表编辑器。
四.安装相关文件下载地址(免积分下载哦)
MYSQL8主从安装及配置教程及配置文件