標籤:mysql-5.5.37多執行個體
CentOS 6.2下安裝編譯mysql-5.5.37 ##多執行個體 原理也是先安裝單一實例後面安裝多執行個體
首先yum安裝
yum install gcc gcc-c++ cmake ncurses-devel bison
1 單一實例Mysql資料庫的安裝
1.1 建立mysql帳號
[[email protected] ~]# groupadd mysql
[[email protected] ~]# useradd -s /sbin/nologin -g mysql -M mysql ##-M表示不建立家目錄
建立完成之後查看下
[[email protected] ~]# grep mysql /etc/passwd
mysql:x:500:500::/home/mysql:/sbin/nologin
1.2建立mysql的安裝目錄
[[email protected] ~]# mkdir -p /usr/local/mysql
[[email protected] ~]# mkdir -p /data/mysql/data
1.3下載mysql http://dev.mysql.com/downloads/ 或者去搜狐鏡像源下載 然後上傳到伺服器
2;安裝mysql
2,1檢測系統原來是否有安裝過mysql
[[email protected] ~]# rpm -qa |grep mysql
mysql-libs-5.1.61-1.el6_2.1.i686
這裡是沒有安裝過mysql 如果有的話就需要先卸載mysql安裝包 rpm -e --nodeps mysql.X.X.X
2,2安裝編譯mysql編譯所需要的包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
如果前面安裝過這些包的話可以分開查詢下再安裝
2,3解壓mysql並安裝
[[email protected] ~]# tar xzvf mysql-5.5.37.tar.gz
[[email protected] ~]# cd mysql-5.5.37
cmake \
-DMYSQL_USER=mysql \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/data/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #通訊端檔案
[[email protected] mysql-5.6.23]# make && make install
3;初始化資料庫
[[email protected] mysql]# mkdir -p /data/mysql/data/{3306,3307} ##建立兩個執行個體
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data/3306 --user=mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data/3307 --user=mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql/data
4;建立設定檔
3306 my.cnf
[client]
port = 3306
socket = /data/mysql/data/3306/mysql.sock
[mysqld]
datadir=/data/mysql/data/3306
skip-name-resolve
lower_case_table_names=1
innodb_file_per_table=1
port = 3306
socket =/data/mysql/data/3306/mysql.sock
back_log = 50
max_connections = 300
max_connect_errors = 1000
table_open_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 2M
max_heap_table_size = 64M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 64
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default-storage-engine = innodb
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=mysql-bin
binlog_format=mixed
slow_query_log
long_query_time = 1
server-id = 1
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 200M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 60
innodb_lock_wait_timeout = 120
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
no-auto-rehash
prompt=\\[email protected]\\d \\R:\\m>
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
3307 my.cnf
[client]
port = 3307
socket = /data/mysql/data/3307/mysql.sock
[mysqld]
datadir=/data/mysql/data/3307
skip-name-resolve
lower_case_table_names=1
innodb_file_per_table=1
port = 3307
socket =/data/mysql/data/3307/mysql.sock
back_log = 50
max_connections = 300
max_connect_errors = 1000
table_open_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 2M
max_heap_table_size = 64M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 64
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default-storage-engine = innodb
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=mysql-bin
binlog_format=mixed
slow_query_log
long_query_time = 1
server-id = 1
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 200M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 60
innodb_lock_wait_timeout = 120
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
no-auto-rehash
prompt=\\[email protected]\\d \\R:\\m>
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
5;定義全域
[[email protected] mysql-5.5.37]# echo "export PATH=/usr/local/mysql/bin/:$PATH" >>/etc/profile
[[email protected] mysql-5.5.37]#source /etc/profile
6;啟動mysql
多執行個體地區檔案的啟動mysql服務實質:
mysqld_safe --defaults-file=/data/mysql/data/3306/my.cnf 2>&1 > /dev/null &
mysqld_safe --defaults-file=/data/mysql/data/3307/my.cnf 2>&1 > /dev/null &
6;登陸
[[email protected] 3307]# /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/data/3306/mysql.sock
[[email protected] 3307]# /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/data/3307/mysql.sock
7;停止mysql
/usr/local/mysql/bin/mysqladmin -u root -p -S /data/mysql/data/3306/mysql.sock shutdown
/usr/local/mysql/bin/mysqladmin -u root -p -S /data/mysql/data/3307/mysql.sock shutdown
8;啟動指令碼編寫
[[email protected] 3306]# vi mysqld
[[email protected] 3306]# chmod 700 mysqld
#!/bin/bash
mysql_port=3306
mysql_username="root"
#if passwd the set password
mysql_password="123"
function_start_mysql()
{
printf "Starting MySQL...\n"
}
function_stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /data/mysql/data/${mysql_port}/mysql.sock shutdown
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef | grep ‘bin/mysqld_safe‘ | grep ${mysql_port} | awk ‘{printf $2}‘)
kill -9 $(ps -ef | grep ‘libexec/mysqld‘ | grep ${mysql_port} | awk ‘{printf $2}‘)
}
case $1 in
start)
function_start_mysql;;
stop)
function_stop_mysql;;
kill)
function_kill_mysql;;
restart)
function_stop_mysql
function_start_mysql;;
*)
echo "Usage: /data/mysql/data/${mysql_port}/mysqld {start|stop|restart|kill}";;
esac
#編寫3307指令碼
#!/bin/bash
mysql_port=3307
mysql_username="root"
mysql_password="123"
function_start_mysql()
{
printf "Starting MySQL...\n"
}
function_stop_mysql()
{
printf "Stoping MySQL...\n"
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef | grep ‘bin/mysqld_safe‘ | grep ${mysql_port} | awk ‘{printf $2}‘)
kill -9 $(ps -ef | grep ‘libexec/mysqld‘ | grep ${mysql_port} | awk ‘{printf $2}‘)
}
case $1 in
start)
function_start_mysql;;
stop)
function_stop_mysql;;
kill)
function_kill_mysql;;
restart)
function_stop_mysql
function_start_mysql;;
*)
echo "Usage: /data/mysql/data/${mysql_port}/mysqld {start|stop|restart|kill}";;
esac
啟動方式:
/data/mysql/data/3306/mysqld start
/data/mysql/data/3307/mysqld start
[[email protected] 3307]# /data/mysql/data/3306/mysqld restart
Stoping MySQL...
Starting MySQL...
[[email protected] 3307]# /data/mysql/data/3307/mysqld restart
Stoping MySQL...
Starting MySQL...
9;開機自啟動mysql
[[email protected] 3307]# vi /etc/rc.local
/data/mysql/data/3306/mysqld start >/dev/null 2>&1
/data/mysql/data/3307/mysqld start >/dev/null 2>&1
本文出自 “常想一二” 部落格,請務必保留此出處http://250919938.blog.51cto.com/962010/1684584
mysql-5.5.37多執行個體的安裝