MySQL5.6多實例部署

無論是迫於預算,亦或者是領導要求,多實例的安裝也是DBA必須掌握的技術,她的啓停和登錄方式和單實例安裝數據庫略有不同,本文記錄下如何完成MySQL5.6多實例部署。

首先我們看一下my.cnf和單實例的區分:

[root@HE1 scripts]#
cat /etc/my.cnf
[client]
#port = 3306
#socket = /tmp/mysql.sock
#default-character-set = utf8
   
[mysql]
#default-character-set = utf8
   
[mysqld3306]
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql_3306
socket  = /tmp/mysql_3306.sock
slow_query_log_file = /data/mysql_3306/slow.log
log-error = /data/mysql_3306/error.log
log-bin = /data/mysql_3306/mysql-bin
sync_binlog = 1
binlog_format = row
transaction_isolation = REPEATABLE-READ
innodb_buffer_pool_size = 100m
   
[mysqld3308]
port = 3308
basedir = /usr/local/mysql
datadir = /data/mysql_3308
socket = /tmp/mysql_3308.sock
slow_query_log = 1
slow_query_log_file = /data/mysql_3308/slow.log
log-error = /data/mysql_3308/error.log
long_query_time = 1
log-bin = /data/mysql_3308/mysql-bin
sync_binlog = 1
binlog_cache_size = 4M
default-storage-engine = InnoDB
binlog_format = row
transaction_isolation = REPEATABLE-READ
innodb_buffer_pool_size = 100m
   
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
   
   
[mysqldump]
quick
max_allowed_packet = 32M

可以看出,多實例的my.cnf實際上就是如上所示,本文爲了演示實驗環境,innodb_buffer_pool_size僅僅開了100m,真實的生產庫中多實例部署該參數要開大些,兩個實例該參數的值達到內存的50%-80%都可以。

下面開始初始化我們的數據庫
首先創建我們的數據目錄
[root@HE1 ~]#mkdir -p /data/mysql_3306
[root@HE1 ~]#mkdir -p /data/mysql_3308
[root@HE1 ~]#echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib" >>/etc/profile

進入到mysql的scripts文件夾下對數據庫進行初始化,這裏我們對3306端口數據庫進行初始化
[root@HE1 scripts]#./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3306 --defaults-file=/etc/my.cnf --user=mysql

這裏我們對3308端口數據庫進行初始化
[root@HE1 scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3308 --defaults-file=/etc/my.cnf --user=mysql

初始化完成後,我們便可以啓停數據庫了,和單實例不同,多實例採用mysqld_multi來啓停數據庫
[root@HE1 bin]# ./mysqld_multi --defaults-file=/etc/my.cnf --user=root --password=MANAGER start 3306,3308

可以利用mysqld_multi的report命令來檢測多實例的運行狀況
1234 [root@HE1 bin]#./mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld3306 is running
MySQL server from group: mysqld3308 is running

登錄方式和單實例大體相同,不過由於多實例的存在,我們需要指定不同的端口號
[root@HE1 bin]# mysql -uroot -p -P3306 -h 192.168.1.48
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 Server version: 5.6.16-log MySQL Community Server (GPL)
   
Copyright (c) 2000,
2014, Oracle and/or its affiliates. All rights reserved.
   
Oracle is a
registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
   
Type 'help;' or '\h'
for help. Type '\c' to clear the current input statement.
   
   
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema
|
| 3306db             |
| mysql              |
| performance_schema
|
| test               |
+--------------------+
5 rows in set (0.00 sec)

當然,利用socket文件登錄也是可以的
[root@HE1 bin]#mysql -uroot -p -S /data/mysql_3306/mysql_3306.sock
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 Server version: 5.6.16-log MySQL Community Server (GPL)
   
Copyright (c) 2000,
2014, Oracle and/or its affiliates. All rights reserved.
   
Oracle is a
registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
   
Type 'help;' or '\h'
for help. Type '\c' to clear the current input statement.
   
   
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema
|
| 3306db             |
| mysql              |
| performance_schema
|
| test               |
+--------------------+
5 rows in set (0.00 sec)

這裏是登錄3308端口數據庫
[root@HE1 bin]#mysql -uroot -p -P3308 -h 192.168.1.48
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 Server version: 5.6.16-log MySQL Community Server (GPL)
   
Copyright (c) 2000,
2014, Oracle and/or its affiliates. All rights reserved.
   
Oracle is a
registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
   
Type 'help;' or '\h'
for help. Type '\c' to clear the current input statement.
   
   
Type 'help;' or '\h'
for help. Type '\c' to clear the current input statement.
   
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema
|
| 3308db             |
| mysql              |
| performance_schema
|
| test               |
+--------------------+
5 rows in set (0.00sec)
   
mysql> quit
Bye

利用3308端口的socket文件登錄數據庫
[root@HE1 bin]#mysql -uroot -p -S /data/mysql_3308/mysql_3308.sock
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9 Server version: 5.6.16-log MySQL Community Server (GPL)
   
Copyright (c) 2000,
2014, Oracle and/or its affiliates. All rights reserved.
   
Oracle is a
registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
   
Type 'help;' or '\h'
for help. Type '\c' to clear the current input statement.
   
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema
|
| 3308db             |
| mysql              |
| performance_schema
|
| test               |
+--------------------+
5 rows in set (0.00sec)

至此,MySQL5.6多實例部署完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章