1. 程式人生 > >通過 mysql_multi 配置不同版本的 mysql

通過 mysql_multi 配置不同版本的 mysql

本機上當時使用的 mysql_multi 配置了多個mysql,現在想看下mysql的配置檔案,想起了當時是使用這個配置的。然後開始找筆記,部落格,怎麼都找不到,最終定位到一篇部落格裡,僅僅提了這麼一句,今天,專門提出來,作為單獨一篇,方便檢視!

 

 

Mac OS X 執行多個版本 MySQL 之解決方案

Posted in MySQL and tagged MySQL Mac OS X 解決方案 分享 on Jan 14, 2015. Viewd 704 times.

文/溫國兵

環境

OS: Mac OS X 10.9.5
MySQL: 5.1.73/5.5.40/5.6.21

解決思路

MySQL 中允許執行多個例項,舉一反三,也可以同時執行多個版本的 MySQL。每個版本的 MySQL 佔有獨立的資料目錄、埠、Socket、PID 即可。有了這種思路,就不難實現了。

具體實施步驟

建立 MySQL 主目錄,解壓不同版本的 MySQL 到 該目錄。

sudo mkdir /usr/local/mysql
sudo tar -zxvf ~/Downloads/mysql-5.1.73-osx10.6-x86_64.tar.gz \
-C /usr/local/mysql/
sudo tar -zxvf ~/Downloads/mysql-5.5.40-osx10.6-x86_64.tar.gz \
-C /usr/local/mysql/
sudo tar -zxvf ~/Downloads/mysql-5.6.21-osx10.9-x86_64.tar.gz \
-C /usr/local/mysql/
ll /usr/local/mysql

建立多個版本的 MySQL 的資料目錄。

sudo mkdir /usr/local/mysql/data
sudo mkdir /usr/local/mysql/data/5.1
sudo mkdir /usr/local/mysql/data/5.5
sudo mkdir /usr/local/mysql/data/5.6

修改許可權。

id mysql
sudo chown -R mysql:mysql /usr/local/mysql

新增環境變數。

vim ~/.bash_profile 
grep mysql-5.1.73 ~/.bash_profile

內容如下:

export PATH=”/usr/local/mysql/mysql-5.1.73-osx10.6-x86_64/bin:$PATHe

使配置生效。

source ~/.bash_profile 

安裝 MySQL 5.1.73。

cd /usr/local/mysql/mysql-5.1.73-osx10.6-x86_64/
sudo scripts/mysql_install_db --user=mysql \
--datadir=/usr/local/mysql/data/5.1

安裝 MySQL 5.5.40。

cd /usr/local/mysql/mysql-5.5.40-osx10.6-x86_64/
sudo scripts/mysql_install_db --user=mysql \
--datadir=/usr/local/mysql/data/5.5o

安裝 MySQL 5.6.21。

cd /usr/local/mysql/mysql-5.6.21-osx10.8-x86_64/
sudo scripts/mysql_install_db --user=mysql \
--datadir=/usr/local/mysql/data/5.6

配置 MySQL Multi。

sudo vim /etc/my.cnf
cat /etc/my.cnf 

內容如下:

[mysqld_multi]
mysqld = /usr/local/mysql/mysql-5.1.73-osx10.6-x86_64/bin/mysqld_safe
mysqladmin = /usr/local/mysql/mysql-5.1.73-osx10.6-x86_64/bin/mysqladmin
log = /var/log/mysqld_mutil.err
user = root

[mysqld5173]
port=5173
socket=/tmp/mysql_5173.sock
basedir=/usr/local/mysql/mysql-5.1.73-osx10.6-x86_64
datadir=/usr/local/mysql/data/5.1
user=_mysql
log-error=/var/log/mysqld_5173.log
pid-file=/tmp/mysqld_5173.pid

[mysqld5540]
port=5540
socket=/tmp/mysql_5540.sock
basedir=/usr/local/mysql/mysql-5.5.40-osx10.6-x86_64
datadir=/usr/local/mysql/data/5.5
user=_mysql
log-error=/var/log/mysqld_5540.log
pid-file=/tmp/mysqld_5540.pid

[mysqld5612]
port=5612
socket=/tmp/mysql_5612.sock
basedir=/usr/local/mysql/mysql-5.6.21-osx10.8-x86_64
datadir=/usr/local/mysql/data/5.6
user=_mysql
log-error=/var/log/mysqld_5612.log
pid-file=/tmp/mysqld_5612.pid

再次修改環境變數,設定啟動和關閉資料庫的別名。

vim ~/.bash_profile

內容如下:

# —————————————
# 10. MySQL alias command configuration
# —————————————

# Start MySQL 5.1
# —————————————
alias sta-5.1=’sudo mysqld_multi start 5173 && sleep 2 && ps -ef | grep mysql’

# Stop MySQL 5.1
# —————————————
alias sto-5.1=”ps -ef | grep mysql_5173 | grep -v grep | awk -F’ ‘ ‘{print $2}’ | xargs sudo kill -9”

# Start MySQL 5.5
# —————————————
alias sta-5.5=’sudo mysqld_multi start 5540 && sleep 2 && ps -ef | grep mysql’

# Stop MySQL 5.5
# —————————————
alias sto-5.5=”ps -ef | grep mysql_5540 | grep -v grep | awk -F’ ‘ ‘{print $2}’ | xargs sudo kill -9”

# Start MySQL 5.6
# —————————————
alias sta-5.6=’sudo mysqld_multi start 5612 && sleep 2 && ps -ef | grep mysql’

# Stop MySQL 5.6
# —————————————
alias sto-5.6=”ps -ef | grep mysql_5612 | grep -v grep | awk -F’ ‘ ‘{print $2}’ | xargs sudo kill -9”

使配置生效。

source ~/.bash_profile 

測試

依次啟動 MySQL 5.1.73、MySQL 5.5.40、MySQL 5.6.12。

sta-5.1
sta-5.5
sta-5.6

依次測試連線是否成功。

mysql --socket=/tmp/mysql_5173.sock -e "SELECT version();"

+———–+
| version() |
+———–+
| 5.1.73 |
+———–+

mysql --socket=/tmp/mysql_5540.sock -e "SELECT version();"

+———–+
| version() |
+———–+
| 5.5.40 |
+———–+

mysql --socket=/tmp/mysql_5612.sock -e "SELECT version();"

+———–+
| version() |
+———–+
| 5.6.21 |
+———–+

依次關閉 MySQL 5.1.73、MySQL 5.5.40、MySQL 5.6.12。

sto-5.1
sto-5.5
sto-5.6

文中涉及的配置檔案:configfiles

Enjoy!

Reference:
Running multiple MySQL instances on MacOsX

–EOF–