1. 程式人生 > >mysql5.7 主從搭建

mysql5.7 主從搭建

直接 pan rsa 變量 主從配置 port 均可 oot useradd

環境、版本

centos 7.2    mysql5.7.13

mysql Master 操作

下載軟件包

cd /opt/soft wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz --no-check-certificate

安裝

tar -xvf /opt/soft/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz  -C /usr/local/

mv mysql-5.7.13-linux-glibc2.5-x86_64   mysql

mkdir -p /data/mysql      #數據目錄 mkdir -p /data/log/mysql     #日誌目錄 groupadd mysql useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql chown -R mysql:mysql /user/local/mysql chown -R mysql:mysql /data/mysql/ chown -R mysql:mysql /data/log/ ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql    #初始化數據庫,完成後會生成一個臨時密碼,註意保存 .
/bin/mysql_ssl_rsa_setup --datadir=/data/mysql                    #數據庫加密

常規配置

vi /etc/my.cnf

[mysql]
default-character-set=utf8
 
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8

mysql 命令加環境變量

echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

bash  /etc/profile

通過初始密碼登錄改一個新密碼

mysql -uroot -p 
set password=password("密碼");
flush privileges;

systemctl enable mysql    開機自啟

主從同步配置

vi /etc/my.cnf 

server-id=1
log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=test
#備註:
#server-id 服務器唯一標識。
#log_bin 啟動MySQL二進制日誌,即數據同步語句,從數據庫會一條一條的執行這些語句。
#binlog_do_db 指定記錄二進制日誌的數據庫,即需要復制的數據庫名,如果復制多個數據庫,重復設置這個選項即可。
#binlog_ignore_db 指定不記錄二進制日誌的數據庫,即不需要復制的數據庫名,如果有多個數據庫,重復設置這個選項即可。
#其中需要註意的是,binlog_do_db和binlog_ignore_db為互斥選項,一般只需要一個即可

創建從服務器權限

[[email protected] mysql]# mysql -uroot -p
Enter password:
 
#創建從數據庫的masterbackup用戶和權限
mysql> grant replication slave on *.* to [email protected]192.168.17.% identified by 123456;
#備註
#192.168.17.%通配符,表示0-255的IP都可訪問主服務器,正式環境請配置指定從服務器IP
#若將 192.168.17.% 改為 %,則任何ip均可作為其從數據庫來訪問主服務器
 
#退出mysql
mysql> exit;
service mysql restart
mysql -uroot -p 
show master status;              #記錄pos 位置,和日誌文件名字

mysql Backup 操作

下載,安裝,常規配置同上

主從配置

vi /etc/my.cnf

server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
啟動同步
mysql -uroot -p

change master to master_host=192.168.1.1,master_port=3306,master_user=masterbackup,master_password=123456,master_log_file=master-bin.000004,master_log_pos=154;

start slave

show slave status\G;        #查看狀態是否正常

master_log_file,master_log_pos 為在主上執行show master status命令查看獲得信息
show slave status;\G     查看狀態如下全為yes 即可,否則配置有問題

Slave_SQL_Running: Yes
Slave_IO_Running: Yes

測試

登錄mysql 主 
選擇test 數據,創建如下表
create table tb_test(ID varchar(36) primary key comment 主鍵ID,MEMO varchar(500) not null comment 信息);
insert into tb_test(ID,MEMO) values(1,one test);

後期增加新的要同步數據庫

1、直接在master 配置文件上配置要增加的數據庫名稱,

2、授權從數據庫能夠訪問同步的新數據庫

3、停止從的同步服務,重新執行 change master to master_host=‘192.168.1.1‘,master_port=3306,master_user=‘masterbackup‘,...命令

4、start slave

5、show slave status;

mysql5.7 主從搭建