mysql8以上配置主从复制以及windows同时部署两台mysql


(一)同时部署两台mysql数据库 mysql-8.0.15

部署主数据库:

1.使用代码编辑器eclipse,idea 创建my.txt 文件 在文件中编写内容为 编辑完成之后将文件格式保存成US-ASCII编码

复制代码

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=F:\mysql-8.0.15-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#主库和从库需要不一致
server-id=1
log-bin=mysql-bin
#同步的数据库
binlog-do-db=test
#不需要同步的数据库
binlog-ignore-db=mysql

复制代码

2.将改好的配置文件后缀名改为ini,然后放到mysql解压后的bin目录下(路径可以更改)

3.以管理员身份运行cmd 到mysql解压后的bin目录下运行如下命令:

复制代码
mysqld --initialize --user=mysql --console
复制代码

运行完成之后控制台会创建一个root的变态随机密码复制下来

4.安装MySQL服务,以管理员身份运行cmd到解压后的bin目录下,并输入mysqld install MySQL --defaults-file="F:\mysql-8.0.15-winx64\bin\my.ini",其中的路径为你正式的ini文件。

5.运行cmd,输入net start mysql启动MySQL服务,再输入mysql -u root -p,然后输入临时密码

6.要想使用mysql 必须重新修改密码mysql8以下的使用set password = password('新密码');  mysql8以上的使用 ALTER USER "root"@"localhost" IDENTIFIED  BY "你的新密码";

如果要修改远程连接等 则需要另外设置https://www.cnblogs.com/wangbodang/p/10819298.html

同样配置从数据库:和主数据库配置一样只需要修改几个地方就可以

1.编写my.ini 配置文件并且放到从数据库解压的目录下注:(端口号,server-id,mysql安装目录,数据存放目录和主数据库不一致)

复制代码

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3308
# 设置mysql的安装目录
basedir=F:\mysql-8.0.15slave-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\mysql-8.0.15slave-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#主库和从库需要不一致
server-id=2
log-bin=mysql-bin
#同步的数据库
binlog-do-db=test
#不需要同步的数据库
binlog-ignore-db=mysql

复制代码

3.以管理员身份运行cmd 到mysql解压后的bin目录下运行如下命令:

复制代码
mysqld --initialize --user=mysql --console
复制代码

运行完成之后控制台会创建一个root的变态随机密码复制下来

4.安装MySQL服务,以管理员身份运行cmd到解压后的bin目录下,并输入mysqld install MySQLslave --defaults-file="F:\mysql-8.0.15slave-winx64\bin\my.ini",其中的路径为你正式的ini文件注:(服务名字和主数据库服务名必须不一致)   。

5.运行cmd,输入net start mysqlslave启动从数据MySQL服务,再输入mysql -u root -p,然后输入临时密码 然后修改密码

(二)配置主从复制

1.登录主数据库后创建同步用户注:(mysql8以上版本创建用户时指定加密方式如下)

复制代码

mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456'
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' ;
mysql> FLUSH PRIVILEGES;

复制代码

完成之后运行

然后查询主数据库状态,并记录下File和Position字段的值

复制代码
mysql> show master status;
+------------------+----------+--------------+--------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------+-------------------+
| mysql-bin.000001 |      100 | test         | mysql            |                   |
+------------------+----------+--------------+--------------------------+-------------------+
1 row in set (0.02 sec)
复制代码

 

2.登录从数据库然后执行如下命令:

stop slave;

设置master信息其中  master_log_file,master_log_pos的值为主数据库状态对应的值

复制代码
change master to
master_host='192.168.1.84',
master_port=3306,
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=100;
复制代码

运行命令:

start slave;

查看从库连接主库状态:

show slave status \G

结果为:

mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.84
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 2231
Relay_Log_File: SC-2016551520-relay-bin.000001
Relay_Log_Pos: 906
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 100
Relay_Log_Space: 1122
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: bb969d1a-43bc-11e9-b6d4-88d7f6c7fea0
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more up
dates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key: 0
1 row in set (0.00 sec)

当Slave_IO_State的值为:Waiting for master to send event 表示成功

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM