mysql安裝之多實例多配置文件安裝

1、多實例安裝簡介

所謂多實例安裝實際上是指在一臺機器上開啓多個不一樣的mysql服務端口(3306,3307),運行多個mysql服務進程,這些服務進程經過不一樣的socket監聽不一樣的服務端口來提供各自的服務;多實例安裝主要目的是爲了有效利用服務器資源,可是也存在資源互相搶佔問題。mysql

2、安裝和啓動(root用戶進行的操做)

$ yum install -y libaio  #安裝mysql依賴軟件包
$ groupadd mysql  #添加mysql權限組
$ useradd -r -g mysql -s /bin/false mysql  #添加mysql權限組的非登陸用戶mysql
$ cd /usr/local  #進入安裝目錄
$ tar zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  #解壓MySQL安裝包
$ mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql  #重命名爲mysql,此處也能夠創建軟鏈接,MySQL配置中使用的是mysql,因此此處目錄名最好爲mysql,不要修改爲其它的。
$ cd mysql
$ mkdir -p data/3306/{data,tmp,log}  #建立3306實例的相關目錄
$ touch data/3306/log/mysql.log  #建立mysql日誌文件,此文件mysql不會自動生成,只好先手動生成了
$ cp /etc/my.cnf data/3306/  #建立3306實例的配置文件
$ vi data/3306/my.cnf  #修改my.cnf配置文件,參數以下圖(參數就再也不介紹了,和單實例的配置幾乎同樣,就mysqld中多了port參數)

$ cp -R data/3306 data/3307  #將3306實例相關配置複製到3307實例
$ cat data/3307/my.cnf | tr [3306] [3307] >> my1.cnf ; mv -f my1.cnf my.cnf  #修改3307配置文件將其中的3306全局替換成3307
$ chown mysql:mysql -R data/  #修改權限
$ bin/mysqld --defaults-file=/usr/local/mysql/data/3306/my.cnf --initialize-insecure --user=mysql  #初始化3306實例數據庫,此處會加載my.cnf中的datadir參數,並在其配置目錄建立初始數據庫,此處經過--initialize-insecure參數指定不生成默認密碼
$ bin/mysqld --defaults-file=/usr/local/mysql/data/3307/my.cnf --initialize-insecure --user=mysql  #初始化3307實例數據庫,此處會加載my.cnf中的datadir參數,並在其配置目錄建立初始數據庫,此處經過--initialize-insecure參數指定不生成默認密碼
$ bin/mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf --user=mysql &  #啓動3306數據庫實例
$ bin/mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf --user=mysql &  #啓動3307數據庫實例
$ ps -ef | grep mysql | grep -v grep  #此處有3306和3307實例說明啓動了2個mysql服務
$ bin/mysql -S /usr/local/mysql/data/3306/tmp/mysql.sock  #啓動mysql客戶端鏈接3306數據庫實例,此處能夠啓動並進入mysql命令行,說明mysql服務沒有問題
$ bin/mysql -S /usr/local/mysql/data/3307/tmp/mysql.sock  #啓動mysql客戶端鏈接3307數據庫實例,此處能夠啓動並進入mysql命令行,說明mysql服務沒有問題

3、將mysql相關命令配置成全局

$ vi /etc/profile  #修改全局配置文件將mysql相關命令設置進環境變量中

此處就不寫多實例MySQL啓動的腳本了,有興趣的能夠參考/usr/local/mysql/support-files/mysqld_multi.server文件或者自行百度。linux

4、多實例數據庫過程當中遇到的錯誤

  1. ERROR 1045 (28000): Unknown error 1045

         此錯誤是我使用bin/mysql -S /usr/local/mysql/data/3306/tmp/mysql.sock命令鏈接數據庫時報的錯誤, 後來看了下我使用這個命令時登陸用戶是普通用戶非root且該用戶不在mysql用戶列表中,因此     須要把命令改爲bin/mysql -uroot -p -S /usr/local/mysql/data/3306/tmp/mysql.sock來指定mysql鏈接用戶。sql

相關文章
相關標籤/搜索