Mysql-單機多實例安裝

簡介

起因是因爲在一次mysql的數據庫中導入導出中的把導入庫的密碼也重置了,想確認是否是因爲導入導出的造成的,特此周圍也沒有合適的Mysql環境,特從單機搭建多實例mysql,特此記錄下。

環境

VM虛擬機
系統版本:CentOS Linux release 7.3.1611 (Core)
數據庫版本:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

部署

環境準備

  • 一臺Linux服務器,配置根據業務流量來調整
  • MySQL安裝包可去MySQL官網下載

安裝Mysql

  • 解壓壓縮包並更名爲mysql
tar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
  • 配置my.cnf文件

在mysql文件夾下面創建data/{3306,3307} 文件夾(保存數據庫數據,也可以放在其他的位置)
在mysql文件夾下面創建tmp/{3306,3307} 文件夾
創建my.cnf配置文件,(單機只有一個數據庫不用配置,單機多數據庫必須創建, 並配置相應的內容,多實例需要多個my.cnf文件:my3306.cnf my3307.cnf)
其實就是MySQL組件公用,根據不通的數據目錄來區分不通的實例,不同的數據目錄就是根據my.cnf來區分的,sock在連接不同的實例的時候需要指定

my3306.cnf

[client]
socket = /usr/local/mysql/mysql3306.sock

[mysqld]
basedir= /usr/local/mysql
datadir = /usr/local/mysql/data/3306/
port = 3306
socket = /usr/local/mysql/mysql3306.sock

my3307.cnf

[client]
socket = /usr/local/mysql/mysql3307.sock

[mysqld]
basedir= /usr/local/mysql
datadir = /usr/local/mysql/data/3307/
port = 3307
socket = /usr/local/mysql/mysql3307.sock

更改MySQL的用戶和權限

groupadd mysql
useradd mysql -g mysql
chown -R mysql:mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/

安裝依賴包

yum -y install make gcc-c++ cmake bison-devel ncurses-devellibaio libaio-devel

數據庫初始化

兩種方式初始化:\

一種直接初始化,使用默認的配置文件,不用指定

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

最後一行可以得到初始化之後的密碼 類似:

[Note] A temporary password is generated for root@localhost: <gxU*CxtK2k%

另外一種指定配置文件初始化:

不同實例初始化更改指向的my3306.cnf地址即可

/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my3306.cnf --initialize --user=mysql
/usr/local/mysql/bin/mysql_ssl_rsa_setup --defaults-file=/usr/local/mysql/my3306.cnf

多機的情況下必須主要my.cnf文件的位置:

5.7版本尋找my.cnf的文件的順序是

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

所以,要想使用到當前數據庫自己文件夾下的的my.cnf文件,就必須在前面的三個文件的地址上面沒有配置文件纔可以

啓動數據庫

前臺啓動:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my3306.cnf  --user=mysql
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my3307.cnf  --user=mysql

服務啓動:

/usr/local/mysql/support-files/mysql.server start

修改數據庫密碼

登錄更改密碼:
第一個數據庫可以直接使用進入\

/usr/local/mysql/bin/mysql -u root -p
第二個數據庫必須使用進入
/usr/local/mysql/bin/mysql --socket=/usr/local/mysql/mysql3306.sock --port==3306 -u root -p
/usr/local/mysql/bin/mysql --socket=/usr/local/mysql/mysql3307.sock --port==3306 -u root -p

使用初始化的時候得到的密碼 <gxU*CxtK2k%
進入後直接修改密碼


mysql>alter user 'root'@'localhost' identified by '123456';
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
mysql>quit

創建連接(可選)

mysql命令


ln -s /usr/local/mysql/bin/mysql /usr/bin

service mysql 命令

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章