公司是做遊戲運營的,外面飄着好多組服務器,每組服務器都有相應的數據庫,爲了實現數據安全,採用主從機制進行備份,但是如果一對一的進行備份太浪費資源,所有主庫向一個數據庫進行主從又在安全性上沒有保障,當這個庫掛了,所有備份也就掛了。而且管理起來也想當的不妨便,所以選擇使用mysql_multi 實現一臺機器跑多臺mysql,來解決。下面就簡單介紹下具體過程。
一、規劃
1.數據庫目錄
[root@localhost ~]# ll /data/mysql/
drwxr-xr-x 4 mysql mysql 4096 03-22 17:33 data1
drwxr-xr-x 4 mysql mysql 4096 03-22 17:33 data2
2.所佔用的端口
date1 佔用3306端口
date2 佔用3307端口
3.數據庫安裝
源碼安裝數據庫(具體細節不再多說,沒有區別)
二、安裝好數據庫後,編輯配置文件 /etc/my.cnf
[mysqld_multi]
mysqld = /mysql/bin/mysqld_safe # 按照你的實際情況來制定路徑
mysqladmin = /mysql/bin/mysqladmin
[mysqld1] #你的第一個mysql進程
port = 3306 #所佔用的端口
socket = /tmp/mysql3306.sock #指定mysql1的sock
pid-file = /data/mysql/data1/mysql3306.pid #指定特定的pid文件
datadir = /data/mysql/data1 #數據存放路徑
skip-name-resolve
log-bin = mysql-bin-3306
log_slave_updates
expire_logs_days = 7
log-error = /data/mysql/data1/mysql3306.err
log_slow_queries = mysql3306-slow.log
long_query_time = 3
query_cache_size = 64M
query_cache_limit = 2M
slave-net-timeout = 10
[mysqld2]
port = 3307
socket = /tmp/mysql3307.sock
pid-file = /data/mysql/data2/mysql3307.pid
datadir = /data/mysql/data2
skip-name-resolve
log-bin = mysql-bin-3307
log_slave_updates
expire_logs_days = 7
log-error = /data/mysql/data1/mysql3307.err
log_slow_queries = mysql3307-slow.log
long_query_time = 3
query_cache_size = 64M
query_cache_limit = 2M
slave-net-timeout = 10
#### 以上沒有介紹到的參數自己可以網上搜下
編輯好之後保存推出。
三、初始數據庫以及啓動
1.初始化數據庫
/mysql/bin/mysql_install_db --datadir=/data/mysql/data1 --user=mysql
/mysql/bin/mysql_install_db --datadir=/data/mysql/data2 --user=mysql
2.啓動數據庫
mysqld_multi --config-file=/etc/my.cnf start 1
mysqld_multi --config-file=/etc/my.cnf start 2
3.查看端口
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 31964/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 32034/mysqld
###可以看到3306 3307已經啓動
4.修改密碼
mysqladmin -uroot password "123456" -S /tmp/mysql3307.sock
mysqladmin -uroot password "123456" -S /tmp/mysql3306.sock
5。登錄數據庫
[root@localhost ~]# mysql -uroot -p -S /tmp/mysql3307.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.37-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
以上的做法只是最基本的安裝,至於優化等細節,還需要繼續挖掘。。。。。。就到這裏,上樓吃飯下班。