如何在一台服務器上安裝兩個mysql
1 前言
上篇寫了在一台機器上源碼編譯安裝一個mysql,那么如何在一台機器上源碼編譯安裝兩個mysql或者更多呢?
2 環境
mysql軟件包:
mysql-5.6.31.tar
mysql-5.5.32.tar
操作系統環境:
CentOS release 6.8 (Final)
3 系統規模
/mysqlsoft |
用來存放mysql的各個程序 |
|
/mysqlsoft/mysql1 |
用來存放mysql-5.5.32.tar 的安裝程序 |
|
/mysqlsoft/mysql2 |
用來存放mysql-5.6.31.tar 的安裝程序 |
|
/mysqlsoft/mysql1/mysql.sock |
|
|
/mysqlsoft/mysql2/mysql.sock |
|
|
/data |
用來存放數據 |
|
/data/mysql1 |
用來存放mysql-5.5.32.的數據 |
|
/data/mysql2 |
用來存放mysql-5.6.31.的數據 |
|
4 添加用戶和目錄
添加用戶
groupadd mysql
useradd mysql -g mysql
創建目錄
mkdir /mysqlsoft
mkdir mysqlsoft/mysql1/ -pv
mkdir mysqlsoft/mysql2/ -pv
創建數據目錄
mkdir /data
mkdir /data/mysql1/ -pv
mkdir /data/mysql2/ -pv
更改權限:
chown -R mysql:mysql mysqlsoft/mysql1
chown -R mysql:mysql mysqlsoft/mysql2
chown -R mysql:mysql /data/mysql1
chown -R mysql:mysql /data/mysql2
5 編譯mysql並安裝
在源碼編譯安裝前我們需要安裝一下工具
cmake,make,gcc,Perl,
yum install cmake,make,gcc,Perl -y
5.1 mysql-5.5.32
cd mysqlsoft/mysql1/
tar -zxvf mysql-5.5.32.tar.gz
mkdir bootstarp
我們把源碼編譯在bootstarp目錄里
cmake .. -DCMAKE_INSTALL_PREFIX=/mysqlsoft/mysql1
-DMYSQL_DATADIR=/data/mysql1
-DSYSCONFDIR=/mysqlsoft/mysql1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3301
-DMYSQL_UNIX_ADDR=/mysqlsoft/mysql1/mysql.sock
編譯完后,我們需要make然后make install
5.2 安裝后的工作
具體參考: http://www.cnblogs.com/karmapeng/p/5844875.html
cd /mysqlsoft/mysql1
cp ./support-files/my-default.cnf my.cnf
編輯my.cnf添加配置項
chown -R mysql .
chgrp -R mysql .
初始化mysql:
scripts/mysql_install_db --user=mysql
更改mysql數據目錄的權限
5.3 mysql-5.6.31
cd /mysqlsoft/mysql2
tar -zxvf mysql-5.6.31.tar.gz
mkdir bootstarp
我們把源碼編譯在bootstarp目錄里
cmake .. -DCMAKE_INSTALL_PREFIX=/mysqlsoft/mysql2
-DMYSQL_DATADIR=/data/mysql2
-DSYSCONFDIR=/mysqlsoft/mysql2
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3302
-DMYSQL_UNIX_ADDR=/mysqlsoft/mysql2/mysql.sock
編譯完后,我們需要make然后make install
5.4 安裝后的工作
具體參考: http://www.cnblogs.com/karmapeng/p/5844875.html
cd /mysqlsoft/mysql2
cp ./support-files/my-default.cnf my.cnf
編輯my.cnf添加配置項
chown -R mysql .
chgrp -R mysql .
初始化mysql:
scripts/mysql_install_db --user=mysql
更改mysql數據目錄的權限
6 啟動mysql
6.1 啟動mysql-5.5.32
cd /mysqlsoft/mysql1
bin/mysqld_safe --user=mysql &
6.2 啟動mysql-5.6.31
cd /mysqlsoft/mysql2
bin/mysqld_safe --user=mysql &
6.3 查看mysql的啟動情況
[root@mysql mysql2]# ps -ef | grep mysql
root 6329 2853 0 13:19 pts/0 00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 6607 6329 0 13:19 pts/0 00:00:00 /mysqlsoft/mysql1/bin/mysqld --basedir=/mysqlsoft/mysql1/ --datadir=/data/mysql1/ --plugin-dir=/mysqlsoft/mysql1//lib/plugin --user=mysql --log-error=/data/mysql1//mysql.localdomain.err --pid-file=/data/mysql1//mysql.localdomain.pid --socket=/mysqlsoft/mysql1/mysql.sock --port=3301
root 6630 2853 0 13:20 pts/0 00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 6774 6630 0 13:20 pts/0 00:00:00 /mysqlsoft/mysql2/bin/mysqld --basedir=/mysqlsoft/mysql2 --datadir=/data/mysql2 --plugin-dir=/mysqlsoft/mysql2/lib/plugin --user=mysql --log-error=/data/mysql2/mysql.localdomain.err --pid-file=/data/mysql2/mysql.localdomain.pid --socket=/mysqlsoft/mysql2/mysql.sock --port=3302
6.4 刪除mysql里的其他項
1.改root用戶更改密碼
2.刪除匿名用戶
3. 刪除mysql.db里的一些行,這些行定義了任何用戶都可以訪問test數據庫,或者以test_開頭的數據庫。
DELETE FROM mysql.db WHERE Db LIKE 'test%';
具體請參考
http://www.cnblogs.com/karmapeng/p/5844875.html