前言:前文已經介紹單例項的安裝,我們接著進行mysql的多例項安裝,我們利用多個配置檔案,多個啟動檔案管理多例項
一、安裝依賴包yum install ncurses-devel libaio-devel gcc gcc-c++ cmake perl
cd mysql-5.5.32
編譯安裝cmake \
-dcmake_install_prefix=/usr/local/mysql \
-dwith_innobase_storage_engine=1 \
-dwith_federated_storage_engine=1 \
-dwith_blackhole_storage_engine=1 \-dwith_example_storage_engine=1 \-dwith_partition_storage_engine=1 \-dwith_fast_mutexes=1 \-dwith_zlib=bundled \-denabled_local_infile=1 \-dwith_readline=1 \
-dwith_embedded_server=1 \
-dmysql_unix_addr=/usr/local/mysql/mysql.sock\
-denabled_local_infile=on \
-ddefault_charset=utf8 \
-ddefault_collation=utf8_general_ci \
-dwith_debug=0
make && make install
二、配置使用者許可權
設定mysql使用者和組groupadd mysql
useradd -g mysql mysql
新建mysql安裝目錄和資料檔案目錄mkdir -p /usr/local/mysql
mkdir -p /data/3306
mkdir -p /data/3307
修改目錄所有者和組chown -r mysql:mysql /usr/local/mysql
chown -r mysql:mysql /data/3306
chown -r mysql:mysql /data/3307
三、初始化資料庫,配置配置檔案,配置啟動檔案等/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql
建立多個配置檔案vim /data/3306/my.cnf
[client]
port = 3306
socket = /data/3306/mysql.sock
[mysqld]
port = 3306
socket = /data/3306/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3306/data
skip-external-locking
key_buffer_size = 16m
max_allowed_packet = 1m
table_open_cache = 64
sort_buffer_size = 512k
net_buffer_length = 8k
read_buffer_size = 256k
read_rnd_buffer_size = 512k
myisam_sort_buffer_size = 8m
skip-name-resolve
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size = 500m
server-id = 1
[mysqld_safe]
log-error=/data/3306/ilanni.err
pid-file=/data/3306/ilanni.pid
[mysqldump]
quick
max_allowed_packet = 16m
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20m
sort_buffer_size = 20m
read_buffer = 2m
write_buffer = 2m
[mysqlhotcopy]
interactive-timeout
拷貝乙份給3307,幷打檔案裡的3306都替換為3307cp /data/3306/my.cnf /data/3307/my.cnf
sed -i 's/3306/3307/g' /data/3307/my.cnf
建立mysql服務啟動指令碼vim /data/3306/mysqld
#!/bin/bash
mysql_port=3306
mysql_username="admin"
mysql_password="password"
function_start_mysql()
printf "starting mysql...\n"
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/$/my.cnf 2>&1 > /dev/null &
function_stop_mysql()
printf "stoping mysql...\n"
/usr/local/mysql/bin/mysqladmin -u $ -p$ -s /data/$/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 $ | awk '')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep $ | awk '')
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/$/mysqld ";;
esac
拷貝給3307乙份啟動指令碼,把裡面的3306都改為3307,幷賦予啟動許可權cp /data/3306/mysqld /data/3307/mysqld
sed -i 's/3306/3307/g' /data/3307/mysqld
chmod +x /data/3306/mysqld
chmod +x /data/3307/mysqld
修改/etc/profile檔案,末尾新增pathpath=/usr/local/mysql/bin:$path
export path
儲存修改,讓配置立即生效source /etc/profile
四,啟動資料庫幷登入/data/3306/mysqld start
/data/3307/mysqld start
mysql -uroot -p -s /data/3306/mysql.sock
mysql -uroot -p -s /data/3307/mysql.sock
Mysql多資料庫備份
bin bash date是linux的乙個命令 date 引數 格式 time date y m d h m s 備份輸出路徑 backupdir home backup 備份檔案路徑 用sql語句取出所有以 test 開頭的資料庫。將指令通過管道傳遞給mysql客戶端 n表示不輸出結果的表頭及結...
redis 多資料庫
一台伺服器上都快開啟200個redis例項了,看著就崩潰了。這麼做無非就是想讓不同型別的資料屬於不同的應用程式而彼此分開。那麼,redis有沒有什麼方法使不同的應用程式資料彼此分開同時又儲存在相同的例項上呢?就相當於mysql資料庫,不同的應用程式資料儲存在不同的資料庫下。redis下,資料庫是由乙...
redis 多資料庫
一台伺服器上都快開啟200個redis例項了,看著就崩潰了。這麼做無非就是想讓不同型別的資料屬於不同的應用程式而彼此分開。那麼,redis有沒有什麼方法使不同的應用程式資料彼此分開同時又儲存在相同的例項上呢?就相當於mysql資料庫,不同的應用程式資料儲存在不同的資料庫下。redis下,資料庫是由乙...