虛擬機centos6.3 安裝 mysql5.6.15 並設置 mysql主從複製

一.最小化安裝centos
二.虛擬機安裝完後,iptables會自動開啓,永久關閉它 chkconfig iptables off
三.設置靜態ip地址,方便以後shell連接 ,mysql主服務器192.168.1.41,從服務器192.168.1.42;
    1.vi   /etc/sysconfig/network-scripts/ifcfg-eth0  (根據虛擬機網卡的不同,這裏eth0也可能是eth1,eth2)
      DEVICE=eth0
      BOOTPROTO=static
      HWADDR=00:26:18:0B:38:C0
      ONBOOT=yes
      IPADDR=192.168.1.41
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
    2.IP生效:
      /sbin/ifdown eth0
      /sbin/ifup eth0
    3.通知網關更新信息:
      /etc/init.d/network restart
    4.配置DNS:
      vi  /etc/resolv.conf
      nameserver 202.101.172.35  
    5.chattr +i  /etc/resolv.conf改爲只讀
    6.重啓系統
四 使用shell登錄192.168.1.41 (mysql主服務器,先設置一臺,然後通過複製,克隆,產生從服務區)
五 安裝mysql5.6.15 (官網mysql.com下載源碼包安裝。http://dev.mysql.com/downloads/mysql/
     1.安裝編譯源碼所需的工具和庫 yum install gcc gcc-c++ ncurses-devel perl
           安裝cmake(mysql5.5以後都採用cmake安裝了)

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

tar -xzvf cmake-2.8.10.2.tar.gz

cd cmake-2.8.10.2

./bootstrap ; make ; make install


    2.創建mysql用戶與組
        groupadd mysql

        useradd -r -g mysql mysql

    3.新建mysql安裝目錄和數據目錄

     mkdir -p /usr/local/mysql

       mkdir -p /data/mysqldb

  

  4.下載mysql 源碼包並解壓安裝

      在官方網站 http://dev.mysql.com/downloads/mysql/ 找找,一般是最後一個source code 32M左右

      tar -zxv -f mysql-5.6.15.tar.gz


  5.安裝mysql

       cd mysql-5.6.15

       配置編譯信息

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1

make

make install

注:重新運行配置,需要刪除CMakeCache.txt文件


##################解釋與說明##############################################

-DCMAKE_INSTALL_PREFIX=dir_name

設置mysql安裝目錄

-DMYSQL_UNIX_ADDR=file_name

設置監聽套接字路徑,這必須是一個絕對路徑名。默認爲/tmp/mysql.sock中。

-DDEFAULT_CHARSET=charset_name

設置服務器的字符集。缺省情況下,MySQL使用latin1的(CP1252西歐)字符集。

cmake/character_sets.cmake文件包含允許的字符集名稱列表。

-DDEFAULT_COLLATION=collation_name

設置服務器的排序規則。

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

存儲引擎選項:

MyISAMMERGEMEMORY,和CSV引擎是默認編譯到服務器中,並不需要明確地安裝。

靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB),   PARTITION (partitioning support), 和 PERFSCHEMA (Performance Schema).

-DMYSQL_DATADIR=dir_name

設置mysql數據庫文件目錄

-DMYSQL_TCP_PORT=port_num

設置mysql服務器監聽端口,默認爲3306

-DENABLE_DOWNLOADS=bool

是否要下載可選的文件。例如,啓用此選項(設置爲1),cmake將下載谷歌所使用的測試套件運行單元測試。

########################################################################

6.修改mysql安裝目錄和數據目錄的權限

cd /usr/local/mysql

chown -R mysql:mysql .

cd /data/mysqldb

chown -R mysql:mysql .


7.初始化mysql數據庫

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb

8複製mysql服務啓動配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

9 修改配置文件

vi /etc/my.cnf

修改datadir = /data/mysqldb/


10、複製mysql服務啓動腳本及加入PATH路徑

  cp support-files/mysql.server /etc/init.d/mysqld

  vim /etc/profile

    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

  export PATH

  source /etc/profile


11、啓動mysql服務並加入開機自啓動

  service mysqld start

  chkconfig --level 35 mysqld on


12、檢查mysql服務是否啓動

  netstat -tulnp | grep 3306

  mysql -u root -p

密碼爲空,如果能登陸上,則安裝成功。


13、修改MySQL用戶root的密碼

  mysqladmin -u root password '123456'




六 複製虛擬機,準備做mysql主從複製

1.可以克隆,也可以直接ctrl+c ctrl+v 複製虛擬機。

2.進入剛複製的虛擬機,由於是複製的,有些地方需要修改

   hostname mysql42

   /etc/sysconfig/network-scripts/ifcfg-eth0 修改靜態ip爲192.168.1.42

   rm /etc/udev/rules.d/70-persistent-net.rules 刪除該文件

   reboot 重啓

3.重啓後的從服務器,可以用shell進入,需要修改auto.cnf文件(都是複製虛擬機惹的禍)

  cd /data/mysqldb/ 

  vi auto.cnf

  把這一長串 16進制 修改一個或多個數,比如把0改成1,把2改成a,隨便你改,保證和41服務器不一樣就行


七mysql主從配置

1.設置server_id,設置log-bin

   192.168.1.41 主服務器 

        vi /etc/my.cnf ; 

        修改server_id=1 ; 

        修改log-bin=mysqlbin-log;  

        service mysqld restart 重啓mysql服務

   192.168.1.42 從服務器

        vi /etc/my.cnf ; 

        修改server_id=42 ;(隨便取,這裏跟ip對應) 

        修改log-bin=mysqlbin-log; (從服務器可以不設置)

        service mysqld restart 重啓mysql服務


2.主服務器,創建擁有操作主從權限的賬戶

  進入mysql    mysql -uroot -p123456

  GRANT REPLICATION SLAVE ON *.* to 'atfire'@'%' identified by 'atfire123';

   atfire是帳號,atfire.cn是密碼

  FLUSH PRIVILEGES; 刷新權限,使權限生效,這句一定要執行,不然無效。


  show master status; 查看主服務器bin-log日誌的當前爲止 ,這裏假設是 mysql-bin.000001    120;


3.設置從服務器

   進入mysql    mysql -uroot -p123456

   (可以鍵入命令help change master to 查看相關配置


CHANGE MASTER TO

  MASTER_HOST='192.168.1.41',            

  MASTER_USER='atfire',

  MASTER_PASSWORD='atfire123',

  MASTER_PORT=3306,

  MASTER_LOG_FILE='mysqlbin-log.000001',

  MASTER_LOG_POS= 120


 這些參數分別是 主服務器地址,用戶名,密碼,端口號,bin-log日誌文件,bin-log日誌當前地址(由步驟2中查出)

4. start slave;開啓從服務器線程

5.show slave status\G;查看從服務器信息

如果 

    Slave_IO_Running=yes

    Slave_SQL_Running=yes

那就表示成功了,這個時候可以去主服務器增刪改,從服務器會產生一樣的數據


如果 Slave_IO_Running和Slave_SQL_Running有一個不是yes,那就是出錯了

 不管是no還是connecting,都是錯了,要2個都是yes才表示成功


按照筆者的操作下來,理論上是可以成功的(因爲筆者是,邊操作,邊記錄的,並且成功了,)

但是實際情況有很多種,也有可能會失敗

出錯的原因有很多種,可以上網查找答案



        















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章