安裝MySQL的依賴包並檢查是否安裝完成mysql
yum -y install ncurses-devel libaio-devel cmakerpm -qa ncurses-devel libaio-devel cmake
(2)建立啓動MySQL的用戶sql
useradd -s /sbin/nologin -M mysql
(3)規範軟件包安裝路徑,並下載解壓mysql-5.5.32源碼包數據庫
mkdir /home/oldboy/toolscd /home/oldboy/toolswget ftp://10.0.0.1/mysql-5.5.32.tar.gztar xf mysql-5.5.32.tar.gz cd mysql-5.5.32
(1)使用cmake命令對MySQL的源碼包進行編譯安裝app
cmake -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \-DMYSQL_DATADIR=/application/mysql-5.5.32/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \-DENABLED_LOOCAL_INFILE=ON \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITHOUT_PARRTITION_STORAGE_ENGINE=1 \-DWITH_FAST_MUTEXES=1 \-DWITH_ZLIB=bundled \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1 \-DWITH_EMBEDDED_SERVER=1\-DWITH_DEBUG=0echo $?
(2)生成Makefile文件的步驟接下來進行安裝ide
make && make installecho $?
(3)到了此步咱們的MySQL數據庫就安裝完成了測試
(1)爲MySQL安裝目錄建立軟連接spa
ln -s /application/mysql-5.5.32 /application/mysqlll /application/
(2)建立MySQL的多實例目錄日誌
mkdir -p /data/{3306,3307}/data
(3)下載MySQL多實例的/dataorm
cd /home/oldboy/tools/wget ftp://10.0.0.1/data.zipunzip data.zipcp -r data /tree /data/
(4)設置多實例MySQL啓動腳本,容許執行server
find /data -type f -name "mysql"|xargs chmod +xfind /data -type f -name "mysql"|xargs ls -l
(5)對MySQL數據庫的數據目錄進行受權管理
chown -R mysql.mysql /data/ll /data/
(6)對MySQL數據庫進行初始化操做
cd /application/mysql/scripts/./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3306/data/ --user=mysql./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3307/data/ --user=mysql
(1)啓動第一個MySQL實例
/data/3306/mysql start
(2)啓動第二個MySQL實例
/data/3307/mysql start
(3)啓動完成進行檢查
netstat -lntup|grep 330
(4)將MySQL命令複製到指定的sock目錄
cp /application/mysql/bin/* /usr/local/sbin/
(5)使用mysql命令登陸數據庫,登陸的時候須要指定sock
mysql -uroot -S /data/3306/mysql.sockmysql -uroot -S /data/3307/mysql.sock
(6)設置MySQL多實例的數據庫開機自啓動
echo "#mysql multi instances" >>/etc/rc.localecho "/data/3306/mysql start" >>/etc/rc.localecho "/data/3307/mysql start" >>/etc/rc.localtail -n 3 /etc/rc.local
常見錯誤問題排除:
(1)是否對主機名作解析
(2)tmp目錄的權限是否爲1777
(3)若是啓動MySQL多實例沒有查到端口就稍等一會
(4)經過日誌.err結尾的日誌進行排錯
(1)建立一個多實例的存放目錄
mkdir /data/3308/data -p
(2)複製一份實例到指定的目錄
\cp /data/3306/{my.cnf,mysql} /data/3308/ll /data/3308
(3)修改配置文件以前必定要備份
\cp /data/3308/{my.cnf,my.cnf.source.bak}\cp /data/3308/{mysql,mysql.source.bak}ll /data/3308/
(4)使用sed命令批量更改MySQL的配置文件與啓動腳本
sed -i 's/3306/3308/g' /data/3308/{my.cnf,mysql}sed -i 's/server-id = 1/server-id = 8/g' /data/3308/my.cnf
(5)設置3308數據庫實例全部者爲mysql用戶
chown -R mysql.mysql /data/3308/ll /data/3308/
(6)設置第三個數據庫實例啓動腳本的權限爲700
chmod 700 /data/3308/mysqlll /data/3308/mysql
(7)對第三個數據庫實例進行初始化數據庫操做
cd /application/mysql/scripts/./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3308/data/ --user=mysql
(8)受權mysql啓動腳本具備執行權限
chmod +x /data/3308/mysql
(9)啓動第三個實例的數據庫
/data/3308/mysql start
(10)啓動完成進行檢查
netstat -lntup|grep 330
(11)測試是否能夠進入數據庫
mysql -S /data/3308/mysql.sock
(12)將數據庫設置開機自啓動
echo "/data/3308/mysql start" >>/etc/rc.localtail -1 /etc/rc.local
mysqladmin password oldboy -S /data/3306/mysql.sockmysqladmin password oldboy -S /data/3307/mysql.sockmysqladmin password oldboy -S /data/3308/mysql.sockmysql -uroot -poldboy123 -S /data/3306/mysql.sock
(1)命令使用格式
mysql -uroot -poldboy -h 10.0.0.52 -P 端口號 -P 爲端口參數
(2)遠程鏈接多實例數據庫測試
mysql -uroot -poldboy -h 10.0.0.52 -P 3306