mysql主從和主主配置

mysql1和mysql分別上傳源碼包mysql-5.6.26.tar.gz,而後mysql1和mysql分別源碼編譯安裝mysql:mysql

cd sql

tar xf mysql-5.6.26.tar.gz -C /usr/local/src && cd /usr/local/src/mysql-5.6.26 && useradd -M -s /sbin/nologin mysql && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL-USER=mysql && make -j 8 && make install && 數據庫

cd && chown -R mysql:mysql /usr/local/mysql/ vim

cp /etc/my.cnf /etc/my.cnf.bak服務器

rm -fr /etc/my.cnf socket

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

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 測試

chkconfig mysqld onrest

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/日誌

ln -s /usr/local/mysql/bin/* /bin/

/etc/init.d/mysqld start

mysql_secure_installation

1、mysql主從配置:

一、主mysql

192.168.146.13 :

建立須要同步的數據庫:

mysql>create database HA;

mysql>use HA;

mysql> create table test(id int,name char(20));

mysql> insert into test values(‘001’,’zhangsan’);

/etc/init.d/mysqld stop

vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

增長下面4行:

log-bin=mysql-bin-master# 啓用二進制日誌

server-id=1 #本機數據庫ID 標示

binlog-do-db=HA #能夠被從服務器複製的庫。二進制須要同步的數據庫名

binlog-ignore-db=mysql #不能夠被從服務器複製的庫

重啓mysql:

/etc/init.d/mysqld restart

受權:

mysql>grant replication slave on . to slave@192.168.146.14 identified by "123456";

mysql>grant replication slave on . to slave@'%' identified by "123456"; 受權給任何ip能夠來同步。

查看狀態信息:

mysql> show master status;

mysql-master-bin.000001

查看二進制日誌:

ls /usr/local/mysql/data/

mysql> show binlog events\G

複製前要保證同步的數據庫一致,導出數據庫

mysqldump -uroot -p123456 HA >HA.sql #導出數據庫

將導出的數據庫傳給從服務器

方法一:scp HA.sql root@192.168.146.14:/root

或者

記得清空兩臺服務器的iptables,要否則端口不能通訊

iptables –F

/etc/init.d/iptables stop

chkconfig iptables off

mysql2:

兩臺數據庫服務器mysql版本要一致

mysql> show variables like '%version%';

二、從mysql

192.168.146.14 :

修改從服務器配置文件:

從服務器不必開啓bin-log日誌

vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

增長下面1行:

server-id= 2 #從服務器ID號,不要和主ID相同 ,若是設置多個從服務器,每一個從服務器必須有一個惟一的server-id值,必須與主服務器的以及其它從服務器的不相同。能夠認爲server-id值相似於IP地址:這些ID值能惟一識別複製服務器羣集中的每一個服務器實

/etc/init.d/mysqld restart

測試鏈接到主服務器是否成功

mysql -uslave -p123456 -h 192.168.146.13

導入數據庫,和主數據庫服務器保持一致

msyql -uroot -p123456

mysql> create database HA;

mysql > use HA;

mysql > source HA < HA.sql

或者:

mysql -uroot -p123456 HA < HA.sql

mysql> change master to master_host='192.168.146.13',master_user='slave',master_password='123456';

mysql> start slave;

mysql>show slave status\G 查看狀態

出現2個yes即爲正常

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

作完以上步驟就是msyql主從配置,若是要部署成msyql主-主配置需繼續以下配置:

2、mysql主主配置:

一、mysql2從

192.168.146.14:

vim /etc/my.cnf

增長 log-bin=mysql-bin-master# 啓用二進制日誌

server-id= 2

增長 binlog-do-db=HA #能夠被從服務器複製的庫。二進制須要同步的數據庫名

增長 binlog-ignore-db=mysql #不能夠被從服務器複製的庫

/etc/init.d/mysqld restart

受權:

mysql>grant replication slave on . to slave@192.168.146.13 identified by "123456";

回到mysql1:

mysql> change master to master_host='192. 168.146.14',master_user='slave',master_password='123456';

3、從新同步全部數據:

mysql> stop slave;

mysql>drop database test;

回到主mysql:

mysqldump -uroot -p123456 HA >HA.sql #導出數據庫

scp HA.sql root@192.168.146.14:/root

回到從mysql:

mysql -uroot -p123456 HA < HA.sql

mysql -uroot -p

mysql> stop slave;

mysql> change master to master_host='192.168.146.13',master_user='slave',master_password='123456';

mysql> start slave;

mysql>show slave status\G 查看狀態

4、從新同步某個節點的數據:

主msyql:

mysql> show master status;

記錄下 master_log_file='mysql-bin-master.000004' 和 master_log_pos=360

從mysql:

mysql> stop slave;

mysql> drop database test;

mysql> change master to master_host='192.168.146.13',master_user='slave',master_password='123456',master_log_file='mysql-bin-master.000004',master_log_pos=360;

mysql> start slave;
5、master掛了,如何提高slave爲master
mysql主從和主主配置
mysql主從和主主配置注意事項一、默認mysq主從只能是master向slave同步數據,除非是主主或者是cluster才能夠互相同步數據,固然能夠配合keepalived或者mha進行vip的高可用二、建議主從,或者主主的時候把另外一臺主設置爲只讀,防止數據不一致的狀況發生。查看數據庫是否只讀:show global variables like '%only%';設置只讀:set global read_only=1;

相關文章
相關標籤/搜索