簡介
起因是因爲在一次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