兩臺虛擬機192.168.183.131和192.168.183.132,裝完系統以後直接把全部開發包都裝上
下載軟件包mysql-5.6.10.tar.gz,cmake-2.8.10.2.tar.gz(從5.5開始mysql使用cmake來進行編譯了而不是以前的configure)mysql
mysql的編譯安裝sql
1.首先安裝cmake數據庫
- [root@localhost ~]# tar -xvf cmake-2.8.10.2.tar.gz
- [root@localhost ~]# cd cmake-2.8.10.2
- [root@localhost cmake-2.8.10.2]# ./configure
- [root@localhost cmake-2.8.10.2]# make;make install
2.安裝mysql
1)建立mysql用戶和組socket
- [root@localhost ~]# groupadd mysql
- [root@localhost ~]# useradd -g mysql mysql
- [root@localhost ~]# mkdir /usr/local/mysql
- [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
2)解壓縮mysql,進行編譯安裝ide
- [root@localhost ~]# tar -xvf mysql-5.6.10.tar.gz
- [root@localhost ~]# cd mysql-5.6.10
- [root@localhost ~]# cmake \
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- -DMYSQL_DATADIR=/user/local/mysql/data \
- -DSYSCONFDIR=/etc \
- -DEXTRA_CHARSETS=all \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DWITH_FEDERATED_STORAGE_ENGINE=1 \
- -DWITH_PARTITION_STORAGE_ENGINE=1 \
- -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
- -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
- -DMYSQL_TCP_PORT=3306 \
- -DWITH_DEBUG=0 \
- -DENABLED_LOCAL_INFILE=1
- [root@localhost ~]# make;make install
- [root@localhost ~]# cd /usr/local/mysql/
- [root@localhost mysql]# chown -R root.mysql *
- [root@localhost mysql]# chown -R mysql.mysql data/
3)建立主配置文件和啓動腳本測試
- [root@localhost data]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
- [root@localhost ~]# vi /etc/my.cnf
- basedir = /usr/local/mysql
- datadir = /usr/local/mysql/data
- port = 3306
- server_id = 131
- socket = /var/run/mysqld/mysqld.sock
- user = mysql
- log-error = /var/log/mysqld.log
- [root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- [root@localhost data]# vi /etc/init.d/mysqld
- basedir=/usr/local/mysql
- datadir=/usr/local/mysql/data
- mysqld_pid_file_path=/var/run/mysqld/mysqld.pid
4)把mysql的相關文件錄入系統
配置mysql命令的搜索路徑
打開/etc/profile文件找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC在這句以前添加export PATH=$PATH:/usr/local/mysql/bin 就會對全部用戶有效而且開機自動生效了spa
告知系統mysql庫文件的存放位置
編輯/etc/ld.so.conf.d/mysql.conf 添加/usr/local/mysql/lib
ldconfig -v |grep mysql
ldconfig會按照系統庫文件的搜索路徑把系統中全部的庫文件從新加載一遍日誌
告知系統mysql頭文件的位置
ln -sv /usr/local/mysql/include /usr/include/mysqlorm
配置mysql的man手冊頁
vi /etc/man.config添加 MANPATH=/usr/local/mysql/manserver
5)初始化數據庫而且啓動
- [root@localhost scripts]# pwd
- /usr/local/mysql/scripts
- [root@localhost scripts]# mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- [root@localhost ~]# chkconfig --add mysqld
- [root@localhost ~]# service mysqld start
6)配置第二臺mysql,直接複製過去
- [root@localhost ~]# scp -r /etc/my.cnf 192.168.183.132:/etc
- [root@localhost ~]# scp -r /etc/init.d/mysqld 192.168.183.132:/etc/init.d
- [root@localhost ~]# scp -r /usr/local/mysql 192.168.183.132:/usr/local
- [root@localhost ~]# scp -r /etc/ld.so.conf.d/mysql.conf 192.168.183.132:/etc/ld.so.conf.d/
- [root@localhost ~]# groupadd mysql
- [root@localhost ~]# useradd -g mysql mysql
- [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
- [root@localhost ~]# cd /usr/local/mysql
- [root@localhost ~]# chown -R root.mysql *
- [root@localhost ~]# chown -R mysql.mysql data/
在132上面把/etc/my.cnf配置文件中的server-id改爲132,而後重複進行第四部
主從複製的配置
1.把131配置成主庫,把132配置成從庫
1)在131上面打開二進制日誌
修改配置文件/etc/my.cnf,添加log-bin = mylog.000001
重啓mysql
2)而後建一個用戶,受權能夠讀取本身的二進制日誌
- mysql> grant replication slave on *.* to slave@'192.168.183.132' identified by 'mapabc';
- Query OK, 0 rows affected (0.01 sec)
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
3)從庫上面登陸測試
- [root@localhost ~]# mysql -u slave -p -h 192.168.183.131
- Enter password:
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | test |
- +--------------------+
- 2 rows in set (0.00 sec)
4)主庫上面查看當前的POS號
- mysql> show master status;
- +--------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +--------------+----------+--------------+------------------+-------------------+
- | mylog.000001 | 412 | | | |
- +--------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
5)在從庫上面配置
- mysql> CHANGE MASTER TO
- -> MASTER_HOST='192.168.183.131',
- -> MASTER_USER='slave',
- -> MASTER_PASSWORD='mapabc',
- -> MASTER_LOG_FILE='mysql.000001',
- -> MASTER_LOG_POS=412;
- Query OK, 0 rows affected, 2 warnings (0.08 sec)
6)查看從庫狀態並啓動從庫
- mysql> show slave status\G;
- *************************** 1. row ***************************
- Slave_IO_State:
- Master_Host: 192.168.183.131
- Master_User: slave
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql.000001
- Read_Master_Log_Pos: 412
- Relay_Log_File: mysqld-relay-bin.000001
- Relay_Log_Pos: 4
- Relay_Master_Log_File: mysql.000001
- Slave_IO_Running: No
- Slave_SQL_Running: No
- mysql> start slave;
- mysql> show slave status\G;
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 192.168.183.131
- Master_User: slave
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mylog.000001
- Read_Master_Log_Pos: 412
- Relay_Log_File: relay-bin.000002
- Relay_Log_Pos: 279
- Relay_Master_Log_File: mylog.000001
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
7)測試
主庫131建立數據庫
- mysql> create database db5;
- Query OK, 1 row affected (0.00 sec)
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | db5 |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- 5 rows in set (0.00 sec)
從庫上面查看
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | db5 |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- 5 rows in set (0.01 sec)
已經同步過來了。
把132配置成主庫,把131配置成132的從庫
1)對於主從複製來講,主庫能夠接受讀寫,從庫只能讀不能寫,一旦從庫有寫入操做,形成主從庫數據不一致,複製立馬就斷開了,咱們就在131上面創建一個受權賬號讓它同步到132上面
- mysql> grant replication slave on *.* to slave@'192.168.183.131' identified by 'mapabc';
- Query OK, 0 rows affected (0.00 sec)
2)打開132的二進制日誌,把132配置成主庫,而後重啓132的mysql
3)在131上面配置
- mysql> CHANGE MASTER TO
- -> MASTER_HOST='192.168.183.132',
- -> MASTER_USER='slave',
- -> MASTER_PASSWORD='mapabc',
- -> MASTER_LOG_FILE='mylog.000001',
- -> MASTER_LOG_POS=120;
- Query OK, 0 rows affected, 2 warnings (0.12 sec)
- mysql> start slave;
- Query OK, 0 rows affected (0.01 sec)
4)測試
在132上面建立數據庫
- mysql> create database db4;
- Query OK, 1 row affected (0.01 sec)
在131上面查看,看到已經同步過來了
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | db4 |
- | db5 |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- 6 rows in set (0.00 sec)
至此,主主同步配置完成。