1
|
yum -y
install
cmake
make
gcc gcc-c++ ncurses-devel bison openssl-devel
|
1
2
|
groupadd mysql
useradd
-g mysql -r mysql
|
1
|
wget http:
//dev
.mysql.com
/get/Downloads/MySQL-5
.5
/mysql-5
.5.36.
tar
.gz
|
1
|
mkdir
/data/mydata/
{data,tmp,logs} –pv
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
tar
xf mysql-5.5.36.
tar
.gz
cd
mysql-5.5.36
cmake . -DCMAKE_INSTALL_PREFIX=
/usr/local/mysql
\
-DMYSQL_DATADIR=
/data/mydata/data
\
-DSYSCINFDIR=
/etc
\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWARP=0 \
-DWITH_UNIX_ADDR=
/tmp/mysql
.sock \
-DDEFAULT_CHARASET=uft8 \
-DDEFAULT_COLLATTON=utf9_general_ci \
make
&&
make
install
|
1
|
cp
support-files
/mysql
.server
/etc/rc
.d
/init
.d
/mysqld
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
[client]
port = 3306
socket =
/var/lib/mysql/mysql
.sock
default-character-
set
= utf-8
[mysqld]
server-
id
= 1
port = 3306
user = mysql
basedir =
/usr/local/mysql
datadir =
/data/mydata/data
tmpdir =
/data/mydata/tmp
socket =
/var/lib/mysql/mysql
.sock
skip-external-locking
skip-name-resolve
default-storage-engine = INNODB
character-
set
-server = utf8
wait-timeout = 100
connect_timeout = 20
interactive_timeout = 100
back_log = 300
myisam_recover
event_scheduler = on
log-bin=
/data/mydata/logs/mysql-bin
binlog_format = row
max_binlog_size = 64M
binlog_cache_size = 1M
slave-net-timeout = 10
skip-slave-start
slow_query_log = 1
long_query_time = 1
slow_query_log_file =
/data/mydata/mysqllog/logs/mysql
.slow
log-error =
/data/mydata/mysqllog/logs/error
.log
max_connections = 1000
max_user_connections = 1000
max_connect_errors = 10000
key_buffer_size = 32M
#以MyISAM为主的服务器,要调大此值
max_allowed_packet = 64M
table_cache = 4096
table_open_cache = 4096
table_definition_cache = 4096
sort_buffer_size = 512K
read_buffer_size = 512K
read_rnd_buffer_size = 512K
join_buffer_size = 512K
tmp_table_size = 64M
max_heap_table_size = 64M
query_cache_type = 0
query_cache_size = 0
bulk_insert_buffer_size = 16M
thread_cache_size = 64
thread_concurrency = 16
#CPU核数*2
thread_stack = 256K
innodb_data_home_dir =
/data/mydata/data
innodb_log_group_home_dir =
/data/mydata/mysqllog/logs
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 16G
innodb_buffer_pool_instances = 4
innodb_additional_mem_pool_size = 16M
innodb_log_file_size = 512M
innodb_log_buffer_size = 32M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 10
innodb_sync_spin_loops = 40
innodb_max_dirty_pages_pct = 90
innodb_support_xa = 1
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 500
innodb_file_io_threads = 4
innodb_concurrency_tickets = 1000
log_bin_trust_function_creators = 1
innodb_flush_method = O_DIRECT
innodb_file_per_table
#是否采用单表单空间
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_io_capacity = 1000
innodb_file_format = Barracuda
#不开启单表单空间,此选项无效
innodb_purge_threads = 1
innodb_purge_batch_size = 32
innodb_old_blocks_pct = 75
innodb_change_buffering = all
transaction_isolation = READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open
-files-limit = 10240
|
1
2
3
4
5
|
master-02的配置文件仅需在master-01上稍作修改
server-
id
= 20
log_slave_updates = 1
#添加(将复制事件写入binlog,一台服务器既做主库又做从库此选项必须要开启)
replicate-same-server-
id
=0
#添加(防止MySQL循环更新)
relay_log_recovery = 1
#添加(MySQLrelay_log的自动修复功能)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
[client]
port = 3306
socket =
/var/lib/mysql/mysql
.sock
default-character-
set
= utf8
[mysqld]
server-
id
= 2
port = 3306
user = mysql
basedir =
/usr/local/mysql
datadir =
/data/mydata/data
tmpdir =
/data/mydata/tmp
socket =
/var/lib/mysql/mysql
.sock
skip-external-locking
skip-name-resolve
default-storage-engine = INNODB
character-
set
-server = utf8
wait-timeout = 100
connect_timeout = 20
interactive_timeout = 100
back_log = 300
myisam_recover
event_scheduler = on
log-bin=
/data/mydata/logs/mysql-bin
binlog_format = row
max_binlog_size = 64M
binlog_cache_size = 1M
slave-net-timeout = 10
relay_log_recovery = 1
slow_query_log = 1
long_query_time = 1
slow_query_log_file =
/data/mydata/mysqllog/logs/mysql
.slow
log-error =
/data/mydata/mysqllog/logs/error
.log
max_connections = 500
max_user_connections = 500
max_connect_errors = 10000
key_buffer_size = 32M
#以MyISAM为主的服务器,要调大此值
max_allowed_packet = 64M
table_cache = 2048
table_open_cache = 2048
table_definition_cache = 2048
sort_buffer_size = 128K
read_buffer_size = 128K
read_rnd_buffer_size = 128K
join_buffer_size = 128K
tmp_table_size = 16M
max_heap_table_size = 16M
query_cache_type = 0
query_cache_size = 0
bulk_insert_buffer_size = 16M
thread_cache_size = 64
thread_concurrency = 4
#CPU核数*2
thread_stack = 128K
innodb_data_home_dir =
/data/mydata/data
innodb_log_group_home_dir =
/data/mydata/mysqllog/logs
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 4
innodb_additional_mem_pool_size = 4M
innodb_log_file_size = 512M
innodb_log_buffer_size = 16M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 10
innodb_sync_spin_loops = 40
innodb_max_dirty_pages_pct = 90
innodb_support_xa = 1
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 500
innodb_file_io_threads = 4
innodb_concurrency_tickets = 1000
log_bin_trust_function_creators = 1
innodb_flush_method = O_DIRECT
innodb_file_per_table
#是否采用单表单空间
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_io_capacity = 1000
innodb_file_format = Barracuda
#不开启单表单空间,此选项无效
innodb_purge_threads = 1
innodb_purge_batch_size = 32
innodb_old_blocks_pct = 75
innodb_change_buffering = all
transaction_isolation = READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open
-files-limit = 10240
|
1
|
/usr/local/mysql/scripts/mysql_install_db
--user=mysql --datadir=
/data/mydata/data/
--basedir=
/usr/local/mysql
|
1
2
|
chmod
+x
/etc/rc
.d
/init
.d
/mysqld
/etc/init
.d
/mysqld
start
|
1
2
|
mysql> grant replication slave on *.* to
'repl'
@
'192.168.237.%'
idetified by
'123456'
;
mysql> flush privileges;
|
1
2
3
4
5
6
7
|
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 | 652 | | |
+------------------+----------+--------------+------------------+
1 row
in
set
(0.01 sec)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#若是线上有数据需要先导入数据
mysql> CHANGE MASTER TO
-> MASTER_HOST=
'192.168.237.128'
,
-> MASTER_PORT=3306,
-> MASTER_USER=
'repl'
,
-> MASTER_PASSWORD=
'123456'
,
-> MASTER_LOG_FILE=
'mysql-bin.000009'
,
-> MASTER_LOG_POS=652;
Query OK, 0 rows affected (0.03 sec)
mysql> start slave;
mysql> show slave status \G
Slave_IO_Running: Yes
#确保为yes
Slave_SQL_Running: Yes
#确保为yes
|
1
2
|
mysql> grant replication slave on *.* to
'repl’@’192.168.237.%'
identified by
'123456'
;
mysql> flush privileges;
|
1
2
3
4
5
6
7
|
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 689 | | |
+------------------+----------+--------------+------------------+
1 row
in
set
(0.00 sec)
|