mysql集群搭建(GTID模式) mysql



hostnamectl set-hostname mysql-master

hostnamectl set-hostname mysql-slave01

hostnamectl set-hostname mysql-slave02


vim /etc/hosts

192.168.10.231   mysql-master

192.168.10.232   mysql-slave01

192.168.10.233   mysql-slave02


yum -y install wget vim lrzsz net-tools ntp 

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 

yum clean all

yum -y update

yum -y install gcc


mkdir /data/mysql -p

mkdir /data/log/mysql/ -pv


yum remove mysql-libs

tar -xf  mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm mysql-community-libs-5.7.25-1.el7.x86_64.rpm mysql-community-client-5.7.25-1.el7.x86_64.rpm mysql-community-server-5.7.25-1.el7.x86_64.rpm mysql-community-devel-5.7.25-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm


chown -R mysql:mysql /data/mysql

chown -R mysql:mysql /data/log/


vim /etc/my.cnf

备注:从库请将server-id修改为大于1的整数。

[mysqld]
port = 3306
server-id = 1
datadir = /data/mysql
socket = /dev/shm/mysql.sock
pid-file = /var/run/mysqld/mysqld.pid
tmpdir = /dev/shm
innodb_buffer_pool_size = 1228M
sort_buffer_size = 16M
innodb_sort_buffer_size = 32M
join_buffer_size = 32M
key_buffer_size = 128M
read_buffer_size = 16M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
query_cache_type = 1
query_cache_size = 512M
query_cache_limit = 16M
query_cache_min_res_unit = 2k
thread_stack = 256K
tmp_table_size = 256M
max_heap_table_size = 256M
max_allowed_packet = 64M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
binlog-format = ROW
# log
log-bin = mysql-master-bin
expire_logs_days = 7
slow_query_log = on
log-error = /data/log/mysql/mysqld.log
long_query_time = 2
log-queries-not-using-indexes = 1
slow_query_log_file = /data/log/mysql/mysqld01_slowquery.log
#GTID
gtid-mode = on
enforce_gtid_consistency = 1
master-info-repository = TABLE
relay-log-info-repository = TABLE
relay_log_recovery = on
sync-master-info = 1
#other
max_connections = 1000
table_open_cache = 4096
skip_name_resolve = 1
lower_case_table_names = 1
log_bin_trust_function_creators = 1
#mode
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#skip-grant-tables


systemctl enable mysqld.service

systemctl start mysqld.service


cat /data/log/mysql/mysqld.log|grep generated

[Note] A temporary password is generated for root@localhost: xxI07yii>mJt

#冒号后面后数据库的初始化密码


#给root修改密码

mysql -S /dev/shm/mysql.sock -uroot -p
#方法一
mysql> SET PASSWORD = PASSWORD('Mayi123@');
mysql> flush privileges;
mysql> exit;
#方法二:
mysql> update user set authentication_string=password('Mayi123@') where user='root' and host='localhost';
mysql> flush privileges;
mysql> exit;
#方法三
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mayi123@' PASSWORD EXPIRE NEVER;
mysql> flush privileges;
mysql> exit;


# 主从设置

---主库执行

[root@mysql-master ~]# mysql -S /dev/shm/mysql.sock -uroot -pMayi123@

mysql> grant replication slave on *.* to 'slave'@'192.168.%.%' identified by 'Slave@0000';

mysql> flush privileges;

mysql> show master logs;

+-------------------------+-----------+

| Log_name                | File_size |

+-------------------------+-----------+

| mysql-master-bin.000001 |       177 |

| mysql-master-bin.000002 |       995 |

+-------------------------+-----------+

mysql> show binlog events in 'mysql-master-bin.000002';               #查看二进制日志中的执行命令

---从库同步

[root@mysql-slave01 ~]# mysql -S /dev/shm/mysql.sock -uroot -pMayi123@

mysql> reset slave;

mysql> stop slave;

mysql> change master to master_host='192.168.10.231',master_port=3306,master_user='slave',master_password='Slave@0000',master_auto_position = 1;

mysql> start slave;

mysql> show slave status \G;

*************************** 1. row ***************************


---查看集群状态

show master status;

show slave hosts;

show global variables like '%gtid%';


-开机自启

systemctl enable mysqld

systemctl start mysqld


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回