1. 程式人生 > >【Linux】多例項安裝mysql

【Linux】多例項安裝mysql

前言

有時候我們需要在單機安裝啟動多個mysql,這裡個人不建議
因為並不好安裝,過程中遇到的各種問題會耽誤很多時間
另外,mysql的不同版本,linux的不同版本也會帶來各種問題

搭建過程

1. 準備工作

安裝libaio:sudo apt-get install libaio-dev
解壓tar:sudo tar -xvf mysql-.......tar.gz
授權、重新命名:sudo chmod -R 777 mysql-...tar.gzmv mysql-... mysql

2. 建立mysql工作目錄

建立目錄:mkdir -p /data/mysqldata/{3307/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}


建立my.cnf:vim /data/mysqldata/3307/my.cnfwq
建立mysqld.pid:vim /data/mysqldata/3307/mysqld.pidwq
建立mysqld.log:vim /data/mysqldata/3307/mysqld.logwq
授權:sudo chmod -R 777 /data/mysqldata
my.cnf單獨授權:sudo chmod 644 /data/mysqldata/3307/my.cnf

3. 建立mysql使用者

建立mysql使用者組:sudo groupadd mysql
建立mysql使用者並新增到mysql使用者組:sudo useradd -r -g mysql mysql


將mysql目錄訪問許可權為mysql使用者:sudo chown mysql mysql
改變mysql目錄的使用者組為mysql組:chgrp -R mysql mysql

4. 修改my.cnf配置

[client]
port = 3307
socket = /data/mysqldata/3307/mysql.sock

[mysqld]
port = 3307
socket = /data/mysqldata/3307/mysql.sock
bind-address = 0.0.0.0    
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/data/mysql/3307    
datadir=/data/mysqldata/3307/data     
log-error=/data/mysqldata/3307/mysqld.log
pid-file=/data/mysqldata/3307/mysqld.pid
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone = '+8:00'

5. 初始化資料庫

指定配置檔案進行初始化:/data/mysql/3307/bin/mysqld --initialize --user=mysql --basedir=/data/mysql/3307 --datadir=/data/mysqldata/3307/data --lc_messages_dir=/opt/mysql/3307/share --lc_messages=en_US

儲存臨時密碼:mysql8會在初始化過程中顯示,mysql7在mysqld.log檔案中

6. 啟動資料庫

指定配置檔案啟動:/data/mysql/3307/bin/mysqld_safe --defaults-file=/data/mysqldata/3307/my.cnf --user=mysql &

7. 連線資料庫

直接連線:/data/mysql/3307/bin/mysql -uroot -p
軟連線:/data/mysql/3307/bin/mysql -h 127.0.0.1 -uroot -p,如果報sock錯誤採用這種

8. 設定資料庫

#修改密碼
set password=password('新密碼');
flush privileges;
UPDATE `mysql`.`user` SET `Host` = '%',  `User` = 'root'  WHERE (`Host` = 'localhost') AND (`User` = 'root');

#建立遠端使用者
grant all privileges on *.* to '新使用者名稱'@'%' identified by '新密碼';
flush privileges;

如果使用mysql8,設定密碼、授權、建立遠端使用者見下文 [問題集錦]

小結

多例項安裝mysql都是採用解壓縮方式進行安裝,同時初始化、啟動、連線都要使用不同自定義的配置檔案,訪問連線使用不同的埠

[ 問題集錦 ]