环境准备及服务器信息:

配置防火墙
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-port=4567/tcp --permanent
firewall-cmd --add-port=4568/tcp --permanent
firewall-cmd --add-port=4444/tcp --permanent
firewall-cmd --reload
安装官方yum源repo配置文件
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
安装pxc
yum -y install Percona-XtraDB-Cluster-57
yum install Percona-Server-client-57
创建用户和组
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
创建目录并赋权
mkdir /data/mysql/{data,binlog,slow,logs} -p
touch /data/mysql/logs/mysqld.log
chown -R mysql:mysql /data/mysql
修改/etc/my.cnf配置文件
vi /etc/my.cnf
增加[mysqld] ##已知BUG
![]()
1 vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
2 替换为:
3 [client]
4 port = 3306
5 socket = /data/mysql/data/mysql.sock
6 default-character-set = utf8mb4
7
8 [mysqld]
9 # basic settings #
10 user = mysql
11 port=3306
12 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
13 autocommit = 1
14 server-id=163
15 character_set_server=utf8mb4
16 init_connect='SET NAMES utf8'
17 transaction_isolation = READ-COMMITTED
18 lower_case_table_names = 1
19 explicit_defaults_for_timestamp = 1
20 max_allowed_packet = 16777216
21 event_scheduler = 1
22 datadir = /data/mysql/data
23 basedir = /var/lib/mysql
24 pid-file = /data/mysql/data/mysqld.pid
25 socket = /data/mysql/data/mysql.sock
26 default-time_zone = '+8:00'
27
28 # connection #
29 interactive_timeout = 1800
30 wait_timeout = 1800
31 lock_wait_timeout = 1800
32 skip_name_resolve = 1
33 max_connections = 5000
34 max_connect_errors = 1000000
35
36 # table cache performance settings
37 table_open_cache = 4096
38 table_definition_cache = 4096
39 table_open_cache_instances = 128
40
41 # session memory settings #
42 read_buffer_size = 5M
43 read_rnd_buffer_size = 10M
44 sort_buffer_size = 10M
45 tmp_table_size = 25M
46 join_buffer_size = 40M
47 thread_cache_size = 20M
48
49 # log settings #
50 log_error = /data/mysql/logs/mysqld.log
51 slow_query_log_file = /data/mysql/slow/slow.log
52 log-bin= /data/mysql/binlog/mysql-bin
53 relay_log = mysql-relay-bin
54 general_log_file= general.log
55
56 slow_query_log = 1
57 log_queries_not_using_indexes = 1
58 log_slow_admin_statements = 1
59 log_slow_slave_statements = 1
60 log_throttle_queries_not_using_indexes = 10
61 long_query_time = 1
62 min_examined_row_limit = 100
63 binlog-rows-query-log-events = 1
64 log-bin-trust-function-creators = 1
65 expire-logs-days = 7
66 log-slave-updates = 1
67
68 # innodb settings #
69 innodb_page_size = 16384
70 innodb_buffer_pool_size = 256M
71 innodb_buffer_pool_instances = 8
72 innodb_buffer_pool_load_at_startup = 1
73 innodb_buffer_pool_dump_at_shutdown = 1
74 innodb_lru_scan_depth = 4096
75 innodb_lock_wait_timeout = 5
76 innodb_io_capacity = 10000
77 innodb_io_capacity_max = 20000
78 innodb_flush_method = O_DIRECT
79 innodb_file_format = Barracuda
80 innodb_file_format_max = Barracuda
81
82 #undo
83 innodb_undo_directory = /data/mysql/data
84 innodb_undo_logs = 128
85 innodb_undo_tablespaces = 3
86
87 #redo
88 innodb_log_group_home_dir = /data/mysql/data
89 innodb_log_file_size = 10M
90 innodb_log_files_in_group = 2
91
92 innodb_flush_neighbors = 0
93 innodb_log_buffer_size = 16384
94 innodb_purge_threads = 4
95 innodb_large_prefix = 1
96 innodb_thread_concurrency = 64
97 innodb_print_all_deadlocks = 1
98 innodb_strict_mode = 1
99 innodb_sort_buffer_size = 16384
100 innodb_write_io_threads = 16
101 innodb_read_io_threads = 16
102 innodb_file_per_table = 1
103 innodb_stats_persistent_sample_pages = 64
104 innodb_autoinc_lock_mode = 2
105 innodb_online_alter_log_max_size=100M
106 innodb_open_files=4096
107
108 # replication settings #
109 master_info_repository = TABLE
110 relay_log_info_repository = TABLE
111 sync_binlog = 1
112 gtid_mode = on
113 enforce_gtid_consistency = 1
114 log_slave_updates
115 binlog_format = ROW
116 binlog_rows_query_log_events = 1
117 relay_log = relay.log
118 relay_log_recovery = 1
119 slave_skip_errors = ddl_exist_errors
120 slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'
121
122 [mysqld-5.6]
123 # metalock performance settings
124 metadata_locks_hash_instances=64
125
126 [mysqld-5.7]
127 # new innodb settings #
128 loose_innodb_numa_interleave=1
129 innodb_buffer_pool_dump_pct = 40
130 innodb_page_cleaners = 16
131 innodb_undo_log_truncate = 1
132 innodb_max_undo_log_size = 100M #2G
133 innodb_purge_rseg_truncate_frequency = 128
134 # new replication settings #
135 slave-parallel-type = LOGICAL_CLOCK
136 slave-parallel-workers = 16
137 slave_preserve_commit_order=1
138 slave_transaction_retries=128
139 # other change settings #
140 binlog_gtid_simple_recovery=1
141 log_timestamps=system
142 show_compatibility_56=on
143
144 # Disabling symbolic-links is recommended to prevent assorted security risks
145 symbolic-links=0
View Code