mysql主從同步配置詳解

mysql主從同步配置詳解

mysql的主從配置參考了不少文章,有的講的很模糊,有的講的是老版本,與當下流行的版本有很大出入,配置的過程中各種報錯,在把一個一個的坑填完後,這裏總結一份比較詳細的正確配置步驟。
環境:
操作系統爲64位windows10,mysql版本爲5.7
主(master):192.168.94.23 端口:3308
從(slave):192.168.94.23 端口:3309
將事先下載好的5.7版本的mysql,複製兩份,分別重命名mysql2(主庫)和mysql3(從庫),
官網下載地址:https://dev.mysql.com/downloads/
一、 安裝主庫
1、 在mysql1根目錄下找到my.ini,如果根目錄下沒有這個文件,就新建一個,注意文件編碼格式爲ANSI,內容如下:
[mysqld]
#skip-grant-tables
#設置字符集爲utf8
loose-default-character-set = utf8
basedir = E:\mysql2
datadir = E:\mysql2\data
port = 3308
#設置數據庫編碼
character-set-server = utf8
#設置最大連接數
max_connections = 2000
max_allowed_packet=10m
[client]
#設置客戶端字符集
loose-default-character-set = utf8
2、 在mysql2的bin目錄下,先初始化,然後安裝mysql2服務,安裝成功會有成功的提示,默認用戶爲root,密碼爲空,然後在上面my.ini文件裏的第一行的#註釋去掉,然後停止服務再重啓,登陸,切換到mysql,修改默認密碼,最後再重啓一下mysql2服務,授予用戶root,遠程登陸權限,如果授權失敗,需要重置用戶,就重置一下用戶,最後查詢一下用戶,如下圖,到這裏主庫的安裝準備工作完成了。
在這裏插入圖片描述
安裝過程中用到的命令:
初始化
mysqld –initialize
安裝mysql
mysqld install mysql2
登陸
mysql –u root –p –P 3308 –h 127.0.0.1
切換數據庫
use mysql
修改默認密碼
update user set authentication_string=PASSWORD(‘root’) where User=‘root’;
重置用戶
alter user user() identified by “root”;
授予用戶遠程登陸權限
grant all privileges on . to ‘root’@’%’ identified by “root” WITH GRANT OPTION;
查詢用戶
select user,host from mysql.user;

二、 安裝從庫
從庫的安裝準備工作同主庫
三、 主從配置
1、主庫配置:完成第一步、第二步的主庫和從庫的準備工作後,先登陸主庫,創建名稱爲abcd的數據庫,在主庫的my.ini文件中的[client]上一行加入,如下配置
server-id=1
log-bin= mysql-bin
binlog-do-db=abcd
,然後重啓主庫mysql2服務,接着再爲從庫創建一個用於從主庫同步數據的用戶zmgx,並授予從庫讀取權限,刷新權限,查看主庫的狀態,並記下File和Position的值,配置從庫的時候會用到。如圖:
在這裏插入圖片描述
3、 從庫配置:
先登陸從庫,創建名稱爲abcd的數據庫,與主庫一模一樣,在從庫的my.ini文件中的[client]上一行加入如下配置:
server-id=2
,然後重啓從庫mysql3服務,然後在從庫中關閉同步服務,重新設置同步服務,
在主庫中記下的file和Position的值就是在這個時候要用到的,然後重新啓動同步服務,刷新權限,並查看從庫狀態,如圖,表示主從同步設置成功
在這裏插入圖片描述
配置過程中用到的命令:
登陸主庫
mysql -u root -p -P 3308 -h 192.168.94.23
創建名稱爲abcd的數據庫
create database abcd default charset utf8 collate utf8_general_ci;
切換數據庫
use abcd;
創建用戶
create user ‘zmgx’@‘192.168.94.23’ identified by ‘zmgx’;
授予從庫權限
grant replication slave on . to ‘zmgx’@‘192.168.94.23’ identified by ‘zmgx’;
刷新權限
flush privileges;
查詢主庫狀態:
show master status\G;
關閉同步
stop slave;
設置主從同步
change master to master_host=‘192.168.94.23’,master_port=3308,master_user=‘zmgx’,master_password=‘zmgx’,master_log_file=‘mysql-bin.000001’, master_log_pos=154;
開啓同步
start slave;
刷新權限
flush privileges;
查看從庫狀態
show slave status\G;

四、 驗證
登陸主庫,創建一個student表,
並插入一條數據,
切換到abcd庫,
查詢一下,主庫已經有了插入的數據
在這裏插入圖片描述
登陸從庫,切換到abcd庫,然後查詢student表,發現插入主庫的數據已經同步到從庫,驗證說明上述配置成功、有效。
在這裏插入圖片描述
用到的命令:

創建student表
create table student(name varchar(10));
插入一條數據
Insert into student(name) values(‘java’);
切換數據庫
Use abcd;
查詢student
Select * from student;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章