一.最小化安裝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
存儲引擎選項:
MyISAM,MERGE,MEMORY,和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才表示成功
按照筆者的操作下來,理論上是可以成功的(因為筆者是,邊操作,邊記錄的,並且成功了,)
但是實際情況有很多種,也有可能會失敗
出錯的原因有很多種,可以上網查找答案