MySQL多實例詳解(2)

1、同步時間

1
2
3
4
5
yum install epel*
ntp 202.120.2.101
yum install -y ntp
ntpdate 202.120.2.101
hwclock -w

  2、準備mysql依賴包

1
2
yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*
yum install cmake -y

  3、環境準備

  3.1添加mysql用戶

1
2
3
4
5
groupadd mysql
useradd -g mysql mysql 
mkdir -pv /data/{3306,3307,3308}/data
chown -R mysql.mysql /data/
cd /usr/local/src/

    3.2編譯安裝mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
tar -xf mysql-5.5.45.tar.gz
cd mysql-5.5.45
chown mysql.mysql -R .
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
gmake
make install

 4、安裝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/


 5、準備配置文件

1
mysqld_multi --example > /data/multi.cnf   #提供多配置文件模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
vim /data/multi.cnf   #修改模板,這裏比較簡易
[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = root 
   
#這個用戶應該有關機權限,然後沒有其他的權限。建議創建一個通用的,multi_admin用戶控制其它的MySQL用戶,這裏有個例子
#GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'password'
   
[mysqld1]
socket     = /tmp/mysql.sock1
port       = 3306
pid-file   /data/3306/mysql.pid
datadir    = /data/3306/data
   
[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   /data/3307/mysql.pid
datadir    = /data/3307/data
#language   = /usr/local/mysql/share/mysql/english
#user       = unix_user1
   
[mysqld3]
#mysqld     = /path/to/mysqld_safe
#ledir      = /path/to/mysqld-binary/
#mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   /data/3308/mysql.pid
datadir    = /data/3308/data
#language   = /usr/local/mysql/share/mysql/swedish
#user       = unix_user2

以上是簡易的配置文件。這個配置文件只能讓MySQL啓動起來。

 6、啓動MySQL

1
2
3
4
5
mysqld_multi --defaults-file=/data/multi.cnf start 1,2,3
ss -tnl   #查看監聽端口
LISTEN     0      50                        *:3306                     *:*    
LISTEN     0      50                        *:3307                     *:*    
LISTEN     0      50                        *:3308                     *:*

 7、登錄mysql與一些安全措施

1
mysql -S /tmp/mysql.sock1       #指定socket登錄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)

其餘的操作類似,就不在演示

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