mysql主從模式部署

1.下載tar.gz格式的安裝包

下載地址https://dev.mysql.com/downloads/mysql/mysql

2.解壓

tar -zvxf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719
mv mysql5719 /mysql
chown -R mysql:mysql /mysql/mysql5719

3.配置my.cnf

master節點配置,進入到/mysql/mysql5719目錄下面,建立文件my.cnf,文件內容以下linux

[mysqld]
datadir=/mysql/mysql5719/data
socket=/mysql/mysql5719/data/mysql.sock 
tmpdir          = /tmp
user=mysql 
basedir                 = /mysql/mysql5719
log-bin                 = master-bin
log-bin-index           = master-bin.index
server-id               = 1
# Disabling symbolic-links is recommended to prevent assorted security risks 
#symbolic-links=0 
#key_buffer              = 16M 
key_buffer_size         = 32M 
max_allowed_packet      = 16M 
thread_stack            = 128K 
thread_cache_size       = 64 
query_cache_limit       = 8M 
query_cache_size        = 64M 
query_cache_type        = 1 
# Important: see Distributing the Databases and Setting max_connections 
max_connections         = 3000

binlog_format=mixed
log_bin_trust_function_creators = 1 
## @!!@ 
lower_case_table_names = 1 
#default-storage-engine=InnoDB   
 
#character_set_client=utf8 
#default-collation=utf8_unicode_ci 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
 
read_buffer_size = 2M 
read_rnd_buffer_size = 16M 
sort_buffer_size = 8M 
join_buffer_size = 8M 
lower_case_table_names = 1


# InnoDB settings 
innodb_data_home_dir=/mysql/mysql5719/data
innodb_file_per_table = 1 
innodb_flush_log_at_trx_commit  = 2 
innodb_log_buffer_size            = 64M 
innodb_buffer_pool_size         = 2G 
innodb_thread_concurrency       = 8 
innodb_flush_method             = O_DIRECT 
innodb_log_file_size = 512M  
#skip-grant-tables
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

slave節點配置,進入到/mysql/mysql5719目錄下面,建立文件my.cnf,文件內容以下sql

[mysqld]
datadir=/mysql/mysql5719/data
socket=/mysql/mysql5719/data/mysql.sock 
user=mysql 
port            = 3306
basedir                 =/mysql/mysql5719
tmpdir                  =/tmp
relay-log       = slave-relay-bin
relay-log-index = slave-relay-bin.index
server-id       = 2
# Disabling symbolic-links is recommended to prevent assorted security risks 
#symbolic-links=0 
#key_buffer              = 16M 
key_buffer_size         = 32M 
max_allowed_packet      = 16M 
thread_stack            = 128K 
thread_cache_size       = 64 
query_cache_limit       = 8M 
query_cache_size        = 64M 
query_cache_type        = 1 
# Important: see Distributing the Databases and Setting max_connections 
max_connections         = 3000

binlog_format=mixed
log_bin_trust_function_creators = 1
 
## @!!@ 
lower_case_table_names = 1 
#default-storage-engine=InnoDB   
 
#character_set_client=utf8 
#default-collation=utf8_unicode_ci 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
 
read_buffer_size = 2M 
read_rnd_buffer_size = 16M 
sort_buffer_size = 8M 
join_buffer_size = 8M 
lower_case_table_names = 1

# InnoDB settings 
innodb_data_home_dir=/mysql/mysql5719/data
innodb_file_per_table = 1 
innodb_flush_log_at_trx_commit  = 2 
innodb_log_buffer_size            = 64M 
innodb_buffer_pool_size         = 2G 
innodb_thread_concurrency       = 8 
innodb_flush_method             = O_DIRECT 
innodb_log_file_size = 512M 
#skip-grant-tables
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

4.建立數據目錄

mkdir /mysql/mysql5719/data數據庫

5.修改mysql服務啓動腳本


6.初始化數據庫(root操做)

./bin/mysqld --defaults-file=./my.cnf --initialize

上圖紅框裏面就是root的初始密碼服務器

7.啓動MySQL服務(root操做)

8.設置mysql.sock

ln -s /mysql/mysql5721/data/mysql.sock /tmp/mysql.sock
socket

9.設置root密碼(初始密碼在初始化數據庫的時候生成)

set password for root@localhost = password('Zaq1@wsx');
測試

10.設置MySQL服務

cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld


若是出現下面的報錯

緣由:MySQL默認的日誌:/var/log/mysqld.log被佔用了,刪除便可。
3d

11.設置MySQL客戶端

mv /usr/bin/mysql  /usr/bin/mysql.bak #刪除備份舊的mysql命令,若不存在可忽略
cp mysql /usr/bin/
chmod 755 /usr/bin/mysql


到此爲止,master機器的安裝配置完成,接下來安裝slave機器,slave機器的安裝和master相似,但請注意my.cnf配置不同日誌

12.在master上添加主從同步用戶

GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'Qwer1@#$';

查看主服務器,出現如下相似信息
mysql> show master status;
code

13.配置slave服務器

mysql  -u root -p  #進入MySQL控制檯
stop slave;   #中止slave同步進程
change master to master_host='134.176.72.82',master_user='rep_user',master_password='Qwer1@#$',master_log_file='master-bin.000002' ,master_log_pos=837;  #執行同步語句
start slave;    #開啓slave同步進程
SHOW SLAVE STATUS\G   #查看slave同步信息,出現如下內容


注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個參數的值爲Yes,即說明配置成功!

14.測試MySQL主從服務器雙機熱備是否成功

(1)進入MySQL主服務器

mysql -u root -p  #進入主服務器MySQL控制檯
mysql> create database test;
mysql> use test; #進入數據庫
mysql> CREATE TABLE test ( id int not null primary key,name char(20) );   #建立test表
mysql> insert into test values(001,'zhangsan');
mysql> insert into test values(002,'lisi');

(2)進入MySQL從服務器

mysql -u root -p  #進入MySQL控制檯
use test; #進入數據庫
show  tables;  #查看mstest庫,會看到有一個新建的表test,表示數據庫同步成功
select * from test;
相關文章
相關標籤/搜索