本實例爲爲遠程linux服務器 與windows服務器做主從設置、操作計算機爲linux
mysql創建用戶並賦予權限
grant 權限 on 數據庫.表名to 用戶名@主機 identified by ‘密碼’
權限:all或者select,insert,update,delete,create,drop
主機:指定ip地址訪問、 localhost或127.0.0.1(本地訪問)、%(任意主機均可訪問)
用戶需要在本地無法訪問 、必需創建一個主機爲localhost 的權限
密碼:爲空時則不需要密碼
主服務器操作:
1、linux管理員連接主服務器
2、ssh [email protected] 訪問遠程服務器
3、vi /opt/lampp/etc/my.cnf 編輯sql配置文件
改爲只讀 read-only 保存
4、 編輯my.cnf文件
(主服務器爲1 從服務器不能相同)
server-id = 1
log-bin=mysql-bin (日誌文件)
binlog-do-db = mydb 要同步的數據庫
從服務器操作
1、配置mysql/bin/my.ini文件
server-id= 2(與主服務器不同)
log-bin=mysql-bin 日誌文件
replicate-do-db=mydb 要同步的數據庫
或binlog-do-db = mydb
2、主服務器要同步的數據庫全備份到 從服務器
3、從服務器 進入mysql 設置slave
CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='root', MASTER_PASSWORD='****';
4、開啓服務
START SLAVE;
5、關閉主服務器只讀狀態
主從服務器不同步解決方法
1、在從服務器 數據庫中使用root用戶 操作 SHOW SLAVE STATUS 察看同步狀態;
若 Slave_IO_Running: Slave_SQL_Running: 有NO 即服務器不同步
不同步時 嘗試進入mysql 重啓slave
使用命令 stop slave; start slave;
2、仍未解決 修改主服務器my.ini文件
添加read only 使mysql只讀運行
3、刪除mysql/mysql-bin開頭 的所有文件
4、主服務器 數據庫操作 reset master (非必需時謹慎使用)
5、重新備份數據庫
使用navacate data transfer 功能
6、從服務器 刪除 /mysql/data下的mysql-bin開頭的文件
7、從服務器重置 slave
stop slave;
rest slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='root', MASTER_PASSWORD='****';
8、重啓 slave
9、取消主服務器只讀狀態;