mysql 多資料庫例項 Mysql多例項安裝

2021-10-17 15:55:27 字數 4012 閱讀 9932

前言:前文已經介紹單例項的安裝,我們接著進行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下,資料庫是由乙...