mysql主从配置 51cto_Mysql主从复制配置
Mysql主從復制配置
本文只是介紹安裝和配置,關于一些名詞和原理,請參考mysql手冊。
Mysql的復制最少需要兩臺mysql服務器,一臺主(主機名master,ip為192.168.20.204),一臺從(主機名slave:ip 為192.168.20.205)。
為了快速搭建mysql環境,我選擇了rpm的安裝方式,在實際應用中根據自己的需求選擇安裝方式。下載mysql的RPM安裝文件并安裝mysql,兩臺mysql的安裝時一樣的(我下載的是常規的Linux RPM包,因為我的系統是centos,之前選擇RedHat的RPM包安裝失敗了)
MySQL-server-5.1.46-1.glibc23.i386.rpm//服務器程序
MySQL-client-5.1.46-1.glibc23.i386.rpm//客戶端程序
一.Mysql的安裝
[root@master ~]# rpm -ivh MySQL-server-5.1.46-1.glibc23.i386.rpm
[root@master ~]# rpm -ivh MySQL-client-5.1.46-1.glibc23.i386.rpm
安裝完成后,拷貝mysql配置文件到/etc/目錄下
[root@master mysql]# cp /usr/share/my-medium.cnf /etc/my.cnf
初始化mysql的root密碼
mysqladmin -u root password 123456
二.配置復制
1,首先登錄master數據庫,創建復制賬號
mysql> grant replication slave on *.* to repl@192.168.20.205 identified by '123456';
2,設置只讀鎖定,查看二進制日志名和記錄偏移量
mysql> flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |106 |????????????? |????????????????? |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
3,備份(導出)master數據庫,解除只讀鎖定
[root@master ~]# mysqldump --all-databases > all.sql
[root@master ~]# mysql -uroot -p123456
mysql> unlock tables;
4,在slave服務器上,將master導出的sql文件導入
[root@slave ~]# mysql -uroot -p123456 < all.sql
登錄slave數據庫,查看庫和表,看是否和master一致
5,確保導入成功后,修改salve數據庫的配置文件
[root@slave ~]# vi /etc/my.cnf
將server-id?= 1修改成server-id?= 2
保存退出,并暫時停止slave數據庫
[root@slave ~]# service mysql stop
6,在slave上,使用--skip-save-start選項啟動數據庫,這樣做的好處是不會立即啟動從數據庫上的復制進程,方便我們進一步配置從服務器
[root@slave ~]# mysqld_safe --skip-save-start &
7,設置從數據庫
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.20.204',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=106;
8,啟動slave進程,查看進程列表
mysql> start slave;
mysql> show processlist \G
*************************** 1. row ***************************
Id: 2
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 3
User: system user
Host:
db: NULL
Command: Connect
Time: 30
State: Waiting for master to send event
Info: NULL
*************************** 3. row ***************************
Id: 4
User: system user
Host:
db: NULL
Command: Connect
Time: 30
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
3 rows in set (0.00 sec)
藍顏色標記的字段,表明已經連上了master數據庫。
9,接下來就是測試復制了
首先在master數據庫中創建一個名為yanggt的庫,在庫中新建一個表,插入幾條記錄,看是否能在slave數據庫中看到,如果看到的結果和master一致,說明已經ok了!
總結
以上是生活随笔為你收集整理的mysql主从配置 51cto_Mysql主从复制配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bash : 索引数组
- 下一篇: SpringEL expression: