一.问题来源
安装MySQL如果手动安装一台还可以,但安装多台,手动安装很麻烦,需要编写一个shell程序 install_mysql.sh来进行安装
二.程序说明
将MySQL5.1.45安装到了 /home/longxibendi/mysql/usrl/local/mysql
数据文件以及日志文件设置在了 /home/longxibendi/mysql/3309/
配置文件my.cnf 在 /home/longxibendi/mysql/3309
端口使用 3309
三.源程序 install_mysql.sh
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/bin/bash #author longxibendi #function install MySQL5.1.45 ###################################### configure and install ##################################################### mkdir -p /home/longxibendi/mysql/usr/local/mysql cd mkdir mysql cd mysql wget http: //downloads .mysql.com /archives/mysql-5 .1 /mysql-5 .1.45. tar .gz tar zxvf mysql-5.1.45. tar .gz cd mysql-5.1.45 . /configure --prefix= /home/longxibendi/mysql/usr/local/mysql --without-debug --without-bench -- enable -thread-safe-client -- enable -assembler -- enable -profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=latin1 --with-extra-charset=utf8,gbk --with-innodb --with-mysqld-user=longxibendi --without-embedded-server --with-server-sufix=community --with-unix-socket-path= /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock -- enable -assembler --with-extra-charsets=complex -- enable -thread-safe-client --with-big-tables --with-readline --with-ssl --with-plugins=partition,heap,innobase,myisam,myisammrg,csv make -j ` cat /proc/cpuinfo | grep 'model name' | wc -l ` && make install ###################################### set log and data storage path ##################################################### chmod +w /home/longxibendi/mysql/usr/local/mysql mkdir -p /home/longxibendi/mysql/3309/data/ mkdir -p /home/longxibendi/mysql/3309/binlog/ mkdir -p /home/longxibendi/mysql/3309/relaylog/ ###################################### create data file ##################################################### /home/longxibendi/mysql/usr/local/mysql/bin/mysql_install_db --basedir= /home/longxibendi/mysql/usr/local/mysql --datadir= /home/longxibendi/mysql/3309/data --user=longxibendi ####################################### create my.cnf profile ##################################################### echo " [client] character- set -server = utf8 port = 3309 socket = /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock [mysqld] character- set -server = utf8 replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema user = mysql port = 3309 socket = /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock basedir = /home/longxibendi/mysql datadir = /home/longxibendi/mysql/3309/data log-error = /home/longxibendi/mysql/3309/mysql_error .log pid- file = /home/longxibendi/mysql/3309/mysql .pid open_files_limit = 10240 back_log = 600 max_connections = 5000 max_connect_errors = 6000 table_cache = 614 external-locking = FALSE max_allowed_packet = 16M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 300 #thread_concurrency = 8 query_cache_size = 20M query_cache_limit = 2M query_cache_min_res_unit = 2k default-storage-engine = MyISAM thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 20M max_heap_table_size = 20M long_query_time = 3 log-slave-updates log-bin = /home/longxibendi/mysql/3309/binlog/binlog binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 20M relay-log-index = /home/longxibendi/mysql/3309/relaylog/relaylog relay-log-info- file = /home/longxibendi/mysql/3309/relaylog/relaylog relay-log = /home/longxibendi/mysql/3309/relaylog/relaylog expire_logs_days = 30 key_buffer_size = 10M read_buffer_size = 1M read_rnd_buffer_size = 6M bulk_insert_buffer_size = 4M myisam_sort_buffer_size = 8M myisam_max_sort_file_size = 20M myisam_repair_threads = 1 myisam_recover interactive_timeout = 120 wait_timeout = 120 skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 #master-host = 192.168.1.2 #master-user = username #master-password = password #master-port = 3309 server- id = 1 innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 20M innodb_data_file_path = ibdata1:56M:autoextend innodb_file_io_threads = 4 innodb_thread_concurrency = 8 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 16M innodb_log_file_size = 20M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 innodb_file_per_table = 0 #log-slow-queries = /home/longxibendi/mysql/3309/slow.log #long_query_time = 10 [mysqldump] quick max_allowed_packet = 32M " > /home/longxibendi/mysql/3309/my .cnf ############################### solve bug http://bugs.mysql.com/bug.php?id=37942 ############################################# mkdir -p /home/longxibendi/mysql/share/mysql/english/ cp /home/longxibendi/mysql/usr/local/mysql/share/mysql/english/errmsg .sys /home/longxibendi/mysql/share/mysql/english/ ############################### start MySQL Server ############################################# /bin/sh /home/longxibendi/mysql/usr/local/mysql/bin/mysqld_safe --defaults- file = /home/longxibendi/mysql/3309/my .cnf 2>&1 > /dev/null & ############################### try use MySQL Server ############################################# /home/longxibendi/mysql/usr/local/mysql/bin/mysql -u root -p -S /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock -P3309 -h127.0.0.1 -e "show databases;" |
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
#!/bin/bash #author longxibendi #function install MySQL5.1.45 ###################################### configure and install ##################################################### mkdir -p /home/longxibendi/mysql/usr/local/mysql cd mkdir mysql cd mysql wget http: //downloads .mysql.com /archives/mysql-5 .1 /mysql-5 .1.45. tar .gz tar zxvf mysql-5.1.45. tar .gz cd mysql-5.1.45 . /configure --prefix= /home/longxibendi/mysql/usr/local/mysql --without-debug --without-bench -- enable -thread-safe-client -- enable -assembler -- enable -profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=latin1 --with-extra-charset=utf8,gbk --with-innodb --with-mysqld-user=longxibendi --without-embedded-server --with-server-sufix=community --with-unix-socket-path= /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock -- enable -assembler --with-extra-charsets=complex -- enable -thread-safe-client --with-big-tables --with-readline --with-ssl --with-plugins=partition,heap,innobase,myisam,myisammrg,csv make -j ` cat /proc/cpuinfo | grep 'model name' | wc -l ` && make install ###################################### set log and data storage path ##################################################### chmod +w /home/longxibendi/mysql/usr/local/mysql mkdir -p /home/longxibendi/mysql/3309/data/ mkdir -p /home/longxibendi/mysql/3309/binlog/ mkdir -p /home/longxibendi/mysql/3309/relaylog/ ###################################### create data file ##################################################### /home/longxibendi/mysql/usr/local/mysql/bin/mysql_install_db --basedir= /home/longxibendi/mysql/usr/local/mysql --datadir= /home/longxibendi/mysql/3309/data --user=longxibendi ####################################### create my.cnf profile ##################################################### echo " [client] character- set -server = utf8 port = 3309 socket = /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock [mysqld] character- set -server = utf8 replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema user = mysql port = 3309 socket = /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock basedir = /home/longxibendi/mysql datadir = /home/longxibendi/mysql/3309/data log-error = /home/longxibendi/mysql/3309/mysql_error .log pid- file = /home/longxibendi/mysql/3309/mysql .pid open_files_limit = 10240 back_log = 600 max_connections = 5000 max_connect_errors = 6000 table_cache = 614 external-locking = FALSE max_allowed_packet = 16M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 300 #thread_concurrency = 8 query_cache_size = 20M query_cache_limit = 2M query_cache_min_res_unit = 2k default-storage-engine = MyISAM thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 20M max_heap_table_size = 20M long_query_time = 3 log-slave-updates log-bin = /home/longxibendi/mysql/3309/binlog/binlog binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 20M relay-log-index = /home/longxibendi/mysql/3309/relaylog/relaylog relay-log-info- file = /home/longxibendi/mysql/3309/relaylog/relaylog relay-log = /home/longxibendi/mysql/3309/relaylog/relaylog expire_logs_days = 30 key_buffer_size = 10M read_buffer_size = 1M read_rnd_buffer_size = 6M bulk_insert_buffer_size = 4M myisam_sort_buffer_size = 8M myisam_max_sort_file_size = 20M myisam_repair_threads = 1 myisam_recover interactive_timeout = 120 wait_timeout = 120 skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 #master-host = 192.168.1.2 #master-user = username #master-password = password #master-port = 3309 server- id = 1 innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 20M innodb_data_file_path = ibdata1:56M:autoextend innodb_file_io_threads = 4 innodb_thread_concurrency = 8 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 16M innodb_log_file_size = 20M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 innodb_file_per_table = 0 #log-slow-queries = /home/longxibendi/mysql/3309/slow.log #long_query_time = 10 [mysqldump] quick max_allowed_packet = 32M " > /home/longxibendi/mysql/3309/my .cnf ############################### solve bug http://bugs.mysql.com/bug.php?id=37942 ############################################# mkdir -p /home/longxibendi/mysql/share/mysql/english/ cp /home/longxibendi/mysql/usr/local/mysql/share/mysql/english/errmsg .sys /home/longxibendi/mysql/share/mysql/english/ ############################### start MySQL Server ############################################# /bin/sh /home/longxibendi/mysql/usr/local/mysql/bin/mysqld_safe --defaults- file = /home/longxibendi/mysql/3309/my .cnf 2>&1 > /dev/null & ############################### try use MySQL Server ############################################# /home/longxibendi/mysql/usr/local/mysql/bin/mysql -u root -p -S /home/longxibendi/mysql/usr/local/mysql/sock/mysql .sock -P3309 -h127.0.0.1 -e "show databases;" |
四.成功安装结果
当安装完成之后,直接回车,就可以看到以下信息
information_schema
mysql
test
以上就是mysql 5.1.45编译安装配置方法,希望对大家的学习有所帮助。