利用mysql_multi來管理多實例:


mysql_multi的現實意義:
1:隨着連接數上升,性能會下降,通過多實例來分流大量連接來提高性能。
2:做資源隔離
3:分庫分表
mysql_multi是官方管理多實例的一個腳本,利用perl語言來編寫的。
 
實驗環境:
數據庫版本: mysql-5.7.14
/data/mysql/mysql3306/{data, log, tmp}
/data/mysql/mysql3307/{data, log, tmp}
現在系統里面已經有了mysql3306這個版本了,我們直接安裝一個3307即可。my3307.cnf配置文件可以copy my3306.cnf,修改關鍵部位即可。
 
初始化:
cd /uer/local/mysql
./bin/mysqld --defaults-file=/data/mysql3307/my3307.cnf --initialize
cat /data/mysq/mysql3307/data/error.log
 
現在我們要准備一個my.cnf文件,這個文件一定放在/etc/my.cnf下,且里面要有兩個部分:[mysqld_mutli]和[mysqldN](N代表端口號)。
例如:
[mysql_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /data/mysql/mysqld_multi.log
user = liumdev
password = liumdevadmin
 
[mysqld3306]
port = 3306
socket = /tmp/mysql3306.sock
datadir = /data/mysql/mysql3306/data
tmpdir = /data/mysql/mysql3306/tmp
server-id = 13306
log-bin = /data/mysql/mysql3306/log/mysql-bin
 
[mysqld3307]
port = 3307
socket = /tmp/mysql3307.sock
datadir = /data/mysql/mysql3307/data
tmpdir = /data/mysql/mysql3307/tmp
server-id = 13307
log-bin = /data/mysql/mysql3307/log/mysql-bin
 
這里注意,[mysqldN]里面配置的參數要在[mysqld]后面,這樣后面的參數會覆蓋前面的參數,好處是如果你想對單獨的實例做一下參數調優的話可以自己設定,3306與3307之間是互不影響的。
 
啟動:/usr/local/mysql/bin/mysql_multi start 3306
/usr/local/mysql/bin/mysqld_multi start
 
創建對應的用戶並給與shuwdown權限:
create user 'liumdev'@'localhost' identfied by 'liumdevadmin';
grant shutdown on *.* to 'liumdev'@'localhost'; flush privileges;
查看賬戶:select user,host,authentication_string from mysql.user;
更改授權:update mysql.user set host='127.0.0.1' where user = 'liumdev';
 
關閉:/usr/local/mysql/bin/mysqld_multi stop
/usr/local/mysql/bin/mysqld_multi stop 3307
 
排錯:
1:使用mysqld_multi stop 3307 報錯 'access denied for .... (using password: yes)'?
這是因為5.6版本以后不允許在終端上輸出明文密碼導致,解決的話修改/usr/local/mysql/bin/mysqld_multi,更改:
my $com= join ' ', 'my_print_defaults -s', @defaults_options, $group;
 
2:注意關閉多實例的用戶和密碼是3306和3307上分別創建的,要兩個賬戶必須是一樣的。
3:5.7版本動態修改innodb_buffer_pool_size:set global innodb_buffer_pool_size=1000*1024*1024;
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM