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