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) |
其餘的操作類似,就不在演示