MySQL高可用安装

下载安装

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

CenOS7下的MySQL软件源配置

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0

安装mysql-server

 yum install mysql-community-server

修改配置文件 cat /etc/my.cnf mysqld中添加部分配置

[mysqld]
innodb_buffer_pool_size=1024MB
character-set-server=utf8
max_connections=2048
port=3306
server-id=2
datadir=/data/mysql/mdata
tmpdir=/data/mysql-slot/tmpdir
socket=/tmp/mysql.2.sock
log_bin=mysql-bin.log
user=mysql
basedir=/data/mysql
core-file
binlog_format=ROW
pid_file=mysql.pid
sync_binlog=1
skip-name-resolve
skip_external_locking
slow_query_log_file=mysql-slow.log
log_error=mysql-err.log
query_cache_type=0
relay-log=mysql-relay-bin
innodb_flush_log_at_trx_commit=1
loose-rpl_semi_sync_master_timeout=1000000000
innodb_buffer_pool_dump_at_shutdown=ON
lower_case_table_names=0
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_gtid_simple_recovery=TRUE
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
binlog_checksum=NONE
plugin-load=rpl_semi_sync_master=semisync_master.so;
plugin-load-add=rpl_semi_sync_slave=semisync_slave.so;
slave_preserve_commit_order=ON
log_slave_updates=ON
open_files_limit=65535
slow_query_log=ON
skip-slave-start=true
loose-rpl_semi_sync_master_enabled=0
read_only=true
loose-rpl_semi_sync_slave_enabled=ON

调整目录权限

mkdir -p /data/mysql/data /data/mysql/tmpdir
chown mysql.mysql  /data/mysql -R

禁用selinux

setenforce 0
vi /etc/selinux/config

启动MySQL服务

systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld

查看初始root密码,修改密码

grep 'temporary password' /data/mysql/mysqld.log
2019-04-22T07:24:38.418737Z 1 [Note] A temporary password is generated for root@localhost: b0pn5S7e4N(;

mysql -h127.0.0.1 -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa@123456';

MySQL密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符

允许root用户远程登录

··· GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘Aa@123456’ WITH GRANT OPTION; FLUSH PRIVILEGES; ···

高可用配置

授权主备同步账号

GRANT ALL PRIVILEGES ON *.* TO 'replica'@'%' IDENTIFIED BY 'Aa@123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
iptables -I OUTPUT -p tcp -m tcp -m comment --comment "mysql" --sport 3306 -j ACCEPT
iptables -I INPUT -p tcp -m tcp -m comment --comment "mysql" --dport 3306 -j ACCEPT

配置主备

change master to master_host='10.246.250.227',master_user='root',master_password='Aa@123456';