windows10 mysql主從復制配置


注意:mysql主從復制,主從版本要一致!
生手永遠在學習的路上,為了學習mysql主從復制,實現讀寫分離,於是在本地安裝多個mysql實例來進行驗證。
也因此有了下面的筆記,一來自我總結一下經驗,二來獨樂樂不如眾樂樂
下載安裝包  https://dev.mysql.com/downloads/mysql/5.7.html#downloads  ,解壓,在此,我下載的是5.7.24版本
先來配置一下主服務:
1.在此目錄下新建一個my.ini的mysql配置文件,同時新建data,logs文件夾
2.配置my.ini
port = 3305
basedir=C:\ProgramData\MySQL\mysql-5.7.24-master-3305 #(mysql文件夾路徑)
datadir=C:\ProgramData\MySQL\mysql-5.7.24-master-3305\data #(data路徑,存放日志文件)
log-bin=master-bin 數據庫備份文件名稱,可自由取,生成后會帶文件序列號,服務每重啟一次就會產生一個新文件
server-id = 1
binlog-do-db=test 表示需要備份的數據庫為test
binlog-ignore-db=mysql 表示不需要備份的數據庫為mysql
如果兩個都不設的話,從服務器會復制主服務器的全部數據庫 (本人就是此設置)
log-bin=mysql-bin 表示開啟二進制日志,並把二進制日志前綴改為mysql-bin
 
3.dos-->cmd,進入bin目錄
(1)進行初始化服務:mysqld --initialize --console,會在控制台打印初始化信息,此時data目錄下也會生成一些初始化文件,並且控制台會打印出初始化的密碼
(2)安裝:mysqld --install MYSQLMaster,MYSQLMaster是服務名,自己看心情取,看到Service successfully installed就表示服務安裝成功
這時候,在任務管理器可以看到MYSQLMaster這個服務,只不過還是未啟動狀態。
(3)啟動服務:net start MYSQLMaster(也可以在任務管理器的服務里面啟動)
 
4.修改密碼,需要加上端口號連接數據庫,否則訪問的是默認3306端口的數據庫
mysql -uroot -P3305 -p
 
5.修改賬號密碼:
切換數據庫,用戶信息在mysql庫的user表了里:use mysql
更新密碼:update user set authentication_string=password("root") where user="root";--password()是mysql的一個加密函數
刷新賬戶信息:flush privileges;
然后運行mysql -uroot -proot就可以用root用戶名和root密碼登陸了
看看當前初始化的數據庫:show databases;
啟動主服務器后,可繼續在dos界面或者用sqlyog連接工具在mysql中創建新用戶授權,也可用直接root用戶,在此我選擇新建個人用戶。
create user 'liuliuyan'@'%' identified by '123456';
給新用戶配置主從復制的權限:
grant replication slave on *.* to 'liuliuyan'@'%' identified by '123456';
注:
@后面的ip地址為允許連接的客戶端的ip地址,如果改為 ‘%’,就表示客戶端沒有ip地址的限制
然后查看主服務master的狀態: (每重啟一次mysql服務,mysql-bin的日志就會新建一個,所以重啟主服務,從服務必須先停止再重新配置后啟動)
7.查看主庫的當前狀態
show master status;
 
注:
請記住這個File和Position,File是同步給從庫的數據庫文件,到時候授權給從庫時要用
二、從庫安裝和配置
1.從主庫拷貝一份解壓文件並復制一份主庫的my.ini文件過來修改配置
[mysqld]
port = 3308
basedir=C:\ProgramData\MySQL\mysql-5.7.24-slave-3308
datadir=C:\ProgramData\MySQL\mysql-5.7.24-slave-3308\data
log-bin=master-bin
server-id = 2
replicate-do-db=test #同步某庫
#同步某表用 replicate-wild-do-table
replicate-wild-do-table =test.test
replicate-wild-do-table =test.test1
replicate-wild-do-table =test.test2
2.保存后像操作主庫一樣進行初始化,安裝,啟動等操作
3.啟動從庫后執行如下命令指定主庫
change master to master_host='localhost',master_user='liuliuyan',master_password='123456',master_port=3305,master_log_file='master-bin.000003',master_log_pos=1245;
參數詳解:
master_host: 主服務器的IP
master_user: 主服務器上新創建的用戶名
master_password: 用戶的密碼
master_port: 主服務器的端口,如果未曾修改,默認即可。
master_log_file: 主服務器二進制日志文件的名稱,填寫查看主服務器的master狀態時顯示的File的值
4.啟動從服務的slave復制功能:
start slave;
5.查從服務器的slave狀態
show slave status \G;
如果 Slave_IO_Running 和 Slave_SQL_Running 的值都為 Yes,則說明主從復制的所有配置已成功,即從服務器已經可以自動與主服務器的數據庫數據實現同步了。
 
三、兩個狀態是ok就主從配置好了,接下來各位可以測試一下,我的測試成功了,在主庫創建庫,創建表后,從庫都能同步到。perfect!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM