【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.gz
、mv 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.cnf
,wq
建立mysqld.pid:
vim /data/mysqldata/3307/mysqld.pid
,wq
建立mysqld.log:
vim /data/mysqldata/3307/mysqld.log
,wq
授權:
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都是採用解壓縮方式進行安裝,同時初始化、啟動、連線都要使用不同自定義的配置檔案,訪問連線使用不同的埠
[ 問題集錦 ]