mysql主從複製配置


1.如何在一臺windows主機上安裝多個mysql服務
=========================================================
原文:http://www.cnblogs.com/yuechaotian/archive/2013/05/15/3079919.html

1.正常安裝第一個mysql(安裝步驟省略,安裝位置是:C:\Program Files\MySQL)

2.在[控制面板/服務(命令services.msc)]裏停止第一個mysql服務

3.將C:\Program Files\MySQL目錄下的所有目錄和文件copy到另外一個路徑,我這裏是copy到E:\test

4.修改my.ini文件

[client]
port=3307 #第一個數據庫的默認端口是3306 這裏需要另外啓用一個端口

# The TCP/IP Port the MySQL Server will listen on
port=3307

# Path to installation directory. All paths are usually resolved relative to this.
basedir="E:\test\MySQL Server 5.5\"         #第二個數據庫basedir

# Path to the database root
datadir="E:\test\MySQL Server 5.5\"         #第二個數據庫datadir

5.創建啓動服務(此時在[控制面板/服務]中可以看到增加了一個新的服務)
cmd到E:\test\MySQL Server 5.5\bin目錄下,執行以下命令
mysqld install MySQL2  --defaults-file="E:\test\MySQL Server 5.5\my.ini"

6.修改註冊表
HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services
找到剛纔創建的MySQL2,將ImagePath修改成如下":
"E:\test\MySQL Server 5.5\bin\mysqld" --defaults-file="E:\test\MySQL Server 5.5\my.ini" MySQL2
(將my.ini放在MySQL Server 5.5下,默認就對着呢,不用修改)


2.mysql主從複製
=========================================================
原文:http://www.cnblogs.com/yuechaotian/archive/2013/05/15/3080056.html

1、首先要在本地建立兩個mysql服務(參考這裏),指定不同的端口。我這裏一個主(3306),一個從(3307)。

2、然後修改主配置文件:
修改主配置文件my.ini:
server-id = 1   
binlog-do-db=test #要同步的數據庫
log-bin=mysql-bin #要生成的二進制日記文件名稱

修改從配置文件my.ini:
[mysqld]
server-id = 2
log-bin    = mysql-bin
replicate-do-db=test

3、在主庫添加一個用戶 repl 並指定replication權限
create user 'repl'@'127.0.0.1' identified by 'asdf';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --這裏我指定數據庫(test.*)時報錯,而指定全庫(*.*)時會成功。


4、保持主從mysql的test數據庫初始狀態一致。
一般是先將所有的表加讀鎖,然後copy磁盤上的數據庫文件夾。我這裏直接停止服務,然後將數據文件拷貝過去。


5、在主數據庫裏面運行show master status;記下file和position字段對應的參數。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | test | |
+------------------+----------+--------------+------------------+


6、在從庫設置它的master:
mysql> change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin.000001',master_log_pos=107;
Query OK, 0 rows affected (0.19 sec)

(如果執行報錯:ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first,
先執行命令stop slave;)

這裏的master_log_file和master_log_pos對應剛纔show master status記下的參數。

7、在從庫開啓從數據庫複製功能。

slave start;

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

在從庫可以通過show slave status來查看一些參數。

8. 此時在主庫test表插入數據,在從庫就會很快也能看到了。




發佈了80 篇原創文章 · 獲贊 40 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章