超简单的mysql多实例布置
一、基本概念
mysql下載:http://mirrors.sohu.com/mysql/MySQL-5.5/
1、MySQL多實(shí)例
就是在一臺(tái)機(jī)器上面開啟多個(gè)不同的端口,運(yùn)行多個(gè)MySQL服務(wù)進(jìn)程。這些MySQL多實(shí)例公用一套安裝程序,使用不同的(也可以是相同的)配置文件,啟動(dòng)程序,數(shù)據(jù)文件。在提供服務(wù)時(shí)候,多實(shí)例MySQL在邏輯上看來是各自獨(dú)立的,多個(gè)實(shí)例的自身是根據(jù)配置文件對(duì)應(yīng)的設(shè)定值,來取得相關(guān)硬件資源的多少。
2、應(yīng)用場(chǎng)景
1.采用了數(shù)據(jù)偽分布式架構(gòu)的原因,而項(xiàng)目啟動(dòng)初期又不一定有那多的用戶量,為此先一組物理數(shù)據(jù)庫(kù)服務(wù)器,但部署多個(gè)實(shí)例,方便后續(xù)遷移
3、作用與問題
1、有效利用服務(wù)器的資源,單個(gè)服務(wù)器資源有剩余時(shí),可以充分利用剩余的資源提供更多的服務(wù)。
2、資源互相爭(zhēng)搶問題,比如 內(nèi)存 ,cpu 需要開啟 numa,并把 mysql 綁定到固定的核心上,網(wǎng)卡的中斷請(qǐng)求,資源爭(zhēng)用,最重要的是磁盤 IO
二、實(shí)戰(zhàn)步驟:
1、同步時(shí)間
2、準(zhǔn)備mysql依賴包
3、環(huán)境準(zhǔn)備
2.添加mysql用戶
#3.編譯安裝mysql(我這里是mysql-5.5.33-linux2.6-x86_64.tar.gz)
4、安裝MySQL多實(shí)例
5、準(zhǔn)備配置文件
6、啟動(dòng)MySQL
7、登錄mysql與一些安全措施
8、關(guān)閉MySQL
9,、提供簡(jiǎn)易管理腳本
10、為mysql的root用戶創(chuàng)建密碼
1:同步時(shí)間:
yum install -y ntp
ntpdate 202.120.2.101
hwclock -w
2:準(zhǔn)備mysql依賴包
yum install -y autoconf automake zlib libxml ncurses-devel libgcrypt libtool openssl
yum install -y
3、環(huán)境準(zhǔn)備
3.1添加mysql用戶
groupadd mysql
useradd -g mysql mysql
mkdir -pv /data/{3306,3307,3308}
chown -R mysql.mysql /data/
3.2: 解壓mysql安裝包并初始化mysql數(shù)據(jù)庫(kù)
cd /usr/local
tar zxvf mysql-5.5.33-linux2.6-x86_64.tar.gz
ln -sv mysql-5.5.33-linux2.6-x86_64 mysql
chown -R root.mysql mysql/*
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/
3.3:準(zhǔn)備配置文件:
mysqld_multi --example > /data/multi.cnf #提供多配置文件模板
3.4:修改模板
vim /data/multi.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = root
#password = my_password
[mysqld1]
socket = /tmp/mysql1.sock
port = 3306
pid-file = /data/3306/mysql.pid
datadir = /data/3306/
#language = /usr/local/mysql/share/mysql/english
#user = unix_user1
[mysqld2]
#mysqld = /path/to/mysqld_safe
#ledir = /path/to/mysqld-binary/
#mysqladmin = /path/to/mysqladmin
socket = /tmp/mysql2.sock
port = 3307
pid-file = /data/3307/mysql.pid
datadir = /data/3307
#language = /usr/local/mysql/share/mysql/swedish
#user = unix_user2
[mysqld3]
socket = /tmp/mysql3.sock
port = 3308
pid-file = /data/3308/mysql.pid
datadir = /data/3308/
#language = /usr/local/mysql/share/mysql/estonia
#user = unix_user3
注釋:如果有一些配置需要改動(dòng)請(qǐng)?jiān)赱mysql#]下添加相應(yīng)的值就好了
改變配置文件:
cp /data/multi.cnf /etc/my.cnf
啟動(dòng)mysql多實(shí)例:
mysqld_multi start 1,2,3
ss -tnul #查看監(jiān)聽端口
LISTEN 0 50 :3306 :
LISTEN 0 50 :3307 :
LISTEN 0 50 :3308 :*
、登錄mysql與一些安全措施
mysql -S /tmp/mysql.sock1 #指定socket登錄
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
mysql> drop database test;
Query OK, 0 rows affected (0.04 sec)
mysql> select User,Host from mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | node1 |
| root | node1 |
+------+-----------+
6 rows in set (0.01 sec)
mysql> delete from mysql.user where User='';
Query OK, 2 rows affected (0.00 sec)
mysql> delete from mysql.user where Host='::1';
Query OK, 1 row affected (0.00 sec)
mysql> delete from mysql.user where Host='node1';
Query OK, 1 row affected (0.00 sec)
其余的操作類似,就不在演示
8、關(guān)閉MySQL
mysqladmin -S /tmp/mysql.sock1 shutdown 建議使用
musqld_multi --defaults-file stop [#,#]
killall mysqld 不建議使用
9,、提供簡(jiǎn)易管理腳本
#!/bin/bash
#
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
conf=/data/multi.cnf
export PATH=$bindir:/$PATH
if test -x $bindir/mysqld_multi
then
mysqld_multi="$bindir/mysqld_multi";
else
echo "Can't execute $bindir/mysqld_multi from dir $basedir";
exit;
fi
case "$1" in
'start' )
"$mysqld_multi" --defaults-extra-file=$conf start $2
;;
'stop' )
"$mysqld_multi" --defaults-extra-file=$conf stop $2
;;
'report' )
"$mysqld_multi" --defaults-extra-file=$conf report $2
;;
'restart' )
"$mysqld_multi" --defaults-extra-file=$conf stop $2
"$mysqld_multi" --defaults-extra-file=$conf start $2
;;
*)
echo "Usage: $0 {start|stop|report|restart}" >&2
;;
esac
10、為mysql的root用戶創(chuàng)建密碼
mysqladmin -uroot -S /tmp/mysql.sock2 password "123456" #指定socket文件位置即可
轉(zhuǎn)載于:https://blog.51cto.com/9025736/2061905
總結(jié)
以上是生活随笔為你收集整理的超简单的mysql多实例布置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sublime Text 3 配置pyt
- 下一篇: Confluence 6 选择一个外部数