qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          MySQL數據庫主從同步安裝與配置總結

           MySQL的主從同步是一個很成熟的架構,優點為:
            ①在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服務器壓力;
            ②在從主服務器進行備份,避免備份期間影響主服務器服務;
            ③當主服務器出現問題時,可以切換到從服務器。
            所以我在項目部署和實施中經常會采用這種方案.
            + 數據庫目錄及其它
            my.cnf配置文件     /etc/my.cnf
            mysql數據庫位置    datadir=/var/lib/mysql
            主數據庫:192.168.2.119
            從數據庫:192.168.2.220
            操作系統:RHEL5.x 32位
            服務器類型: 虛擬機
            + mysql5.0.77 安裝:
            ① 配置好linux的yum服務后,直接yum -y install mysql即可
            附:安裝php\mysql一條命令安裝:yum -y install httpd php mysql mysql-server php-mysql
            ② 啟動MySQL
            service mysqld start(restart|stop)
            一、設置主庫
            1、修改主庫my.cnf,主要是設置個不一樣的id和logbin(#這部可依具體環境而定,壓力大的化可采用huge.cnf)
            [root@localhost etc]#vi /etc/my.cnf
            # 記住這部分一定要配置在[mysqld]后面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
          [mysqld]
          log-bin=mysql-bin
          server-id=1
          binlog-ignore-db=information_schema
          binlog-ignore-db=cluster
          binlog-ignore-db=mysql
            2、啟動主庫生效
            [root@localhost etc]service mysqld restart
            3、登陸主庫
            [root@localhost etc]mysql -u root -p
            4、賦予從庫權限帳號,允許用戶在主庫上讀取日志
            mysql> grant all privileges on *.* to '用戶名'@'%' identified by '密碼';
            5、檢查創建是否成功
            select user,host from mysql.user;
            6、鎖主庫表
            mysql> flush tables with read lock;7、顯示主庫信息
            記錄File和Position,從庫設置將會用到
          mysql> show master status;
          +------------------+----------+--------------+------------------+
          | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
          +------------------+----------+--------------+------------------+
          | mysql-bin.000001 98   |              |                  |
          +------------------+----------+--------------+------------------+
          1 row in set (0.00 sec)
          # 說明,如果執行這個步驟始終為Empty set(0.00 sec),那說明前面的my.cnf沒配置對。
            8、另開一個終端登陸220,打包主庫遷移數據(如果你使用的yum安裝,有默認數據庫并未做任何改動,則不需要進行拷貝)
            目的是為了保證兩臺服務器的mysql數據庫一致,這里可以自行tar打包或者使用mysqldump命令備份恢復的方式進行。
            二、設置從庫
            1、傳輸拿到主庫包、解包
            # 登陸從庫
            從上一步中備份的數據庫恢復到220服務器節點上。
            2、在119節點上解鎖主庫表(對應第一點設置主庫中第6步鎖主庫表的操作)
            mysql> unlock tables;
            3、在220節點上修改從庫my.cnf(位置一樣)
            # 記住這部分一定要配置在[mysqld]后面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
          [mysqld]
          log-bin=mysql-bin
          server-id=2
          binlog-ignore-db=information_schema
          binlog-ignore-db=cluster
          binlog-ignore-db=mysql
          replicate-do-db=test
          replicate-ignore-db=mysql
          log-slave-updates
          slave-skip-errors=all
          slave-net-timeout=60
          master-host=192.168.2.119
          master-user=root
          master-password=pfingo
            4、在220節點上驗證連接主庫
            [root@localhost etc]mysql -h 192.168.2.119 -u 用戶名 -p
            5、在220節點從庫上設置同步
          #設置連接MASTER MASTER_LOG_FILE為主庫的File,MASTER_LOG_POS為主庫的Position
          #注意下面第二條命令語句中的master_log_file='mysql-bin.000001', master_log_pos=98;對應為前面在主庫中執行的show master status;結果
          mysql> slave stop;
          mysql> change master to master_host='192.168.2.119',master_user='root',master_password='pfingo',master_log_file='mysql-bin.000001', master_log_pos=98;
          mysql> slave start;
            6、啟動從庫服務
            mysql> slave start;
            7、進行測試
            在主庫上的test庫上建立名為myTest的表
          mysql> CREATE TABLE `myTest` (
          `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
          `username` VARCHAR( 20 ) NOT NULL ,
          `password` CHAR( 32 ) NOT NULL ,
          `last_update` DATETIME NOT NULL ,
          `number` FLOAT( 10 ) NOT NULL ,
          `content` TEXT NOT NULL ,
          PRIMARY KEY ( `id` )
          ) ENGINE = MYISAM ;
            在從表中馬上看到了效果,主從同步成功了;
            為了更進一步驗證在從庫上輸入show slave status\G;
            mysql> show slave status\G;
            Slave_IO_Running: Yes(網絡正常);
            Slave_SQL_Running: Yes(表結構正常)
            進一步驗證了以上過程的正確性。

          posted on 2014-03-28 11:24 順其自然EVO 閱讀(236) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2014年3月>
          2324252627281
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 锦州市| 汾阳市| 永新县| 尚志市| 西乌珠穆沁旗| 汝州市| 仪征市| 临武县| 图木舒克市| 长宁县| 乳山市| 惠东县| 平顶山市| 金昌市| 安宁市| 广汉市| 马山县| 宁化县| 南陵县| 北安市| 清原| 礼泉县| 乌鲁木齐县| 日喀则市| 绥江县| 濉溪县| 苗栗县| 九江市| 秦皇岛市| 通海县| 达拉特旗| 文化| 黄冈市| 隆尧县| 丰城市| 五指山市| 板桥市| 西盟| 大厂| 白水县| 宁强县|