MariaDB多執行個體

來源:互聯網
上載者:User

標籤:設定許可權   yum安裝   ice   入口   mct   vim   資料庫檔案   查看   結構   

MariaDB多執行個體:環境和思路:

centos7.4

yum安裝實現。

一個版本mysql通過多個連接埠實現

規劃3個執行個體的連接埠:3306/3307/3308。

將各自的設定檔、記錄檔、pid、socket單獨存放。

安裝MariaDB:
[[email protected] ~]#yum install mariadb-server
三個資料庫的資料都放在獨自的執行個體中:
[[email protected] ~]#mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv
查看目錄結構:
[[email protected] ~]#tree /mysqldb//mysqldb/├── 3306│   ├── data│   ├── etc│   ├── log│   ├── pid│   └── socket├── 3307│   ├── data│   ├── etc│   ├── log│   ├── pid│   └── socket └── 3308    ├── data    ├── etc    ├── log    ├── pid    └── socket

由於是yum安裝mysql帳號已經被建立好了

[[email protected] ~]#getent passwd mysqlmysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
修改資料庫目錄的所有者和所有組:
[[email protected] ~]#chown -R mysql.mysql /mysqldb
產生三個資料庫各自的資料庫檔案:
[[email protected] ~]#mysql_install_db  --datadir=/mysqldb/3306/data --user=mysql --basedir=/usr[[email protected] ~]#mysql_install_db  --datadir=/mysqldb/3307/data --user=mysql --basedir=/usr[[email protected] ~]#mysql_install_db  --datadir=/mysqldb/3308/data --user=mysql --basedir=/usr
準備設定檔:

根據3個不同的執行個體準備3個設定檔:

思路:用/etc/my.cnf 當模板:

將設定檔考到各自的檔案下:

[[email protected] ~]#cp /etc/my.cnf /mysqldb/3306/etc/[[email protected] ~]#cp /etc/my.cnf /mysqldb/3307/etc/[[email protected] ~]#cp /etc/my.cnf /mysqldb/3308/etc/
修改各自的設定檔3306/3307/3308:
[[email protected] ~]#vim /mysqldb/3306/etc/my.cnf[mysqld]port=3306       (手動必須添加)datadir=/mysqldb/3306/datasocket=/mysqldb/3306/socket/mysql.sock[mysqld_safe]log-error=/mysqldb/3306/log/mariadb.logpid-file=/mysqldb/3306/pid/mariadb.pid#!includedir /etc/my.cnf.d(注釋掉)

==> 連接埠為3307/3308的設定檔也要手動修改==

準備啟動服務指令碼:

參考格式:

[[email protected] ~]#cat /usr/lib/systemd/system/mariadb.service

啟動的關鍵命令:

ExecStart=/usr/bin/mysqld_safe --basedir=/usr

停止yum安裝的mysql服務防止衝突:
[[email protected] ~]#systemctl stop mariadb
運行建立啟動指令碼:

將指令碼考入對應的目錄裡:

==> 將指令碼分別存個在各自的路徑下3306/3307/3308,將prot改為各自的連接埠號碼運行。==

[[email protected] ~]#rz /mysqldb/3306/mysqld[[email protected] ~]#rz /mysqldb/3307/mysqld[[email protected] ~]#rz /mysqldb/3308/mysqld

==> 將指令碼裡對應的連接埠和資料庫路徑編輯正確==

#!/bin/bashport=3306mysql_user="root"mysql_pwd=""cmd_path="/usr/bin"mysql_basedir="/mysqldb"mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"function_start_mysql(){    if [ ! -e "$mysql_sock" ];then      printf "Starting MySQL...\n"      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &    else      printf "MySQL is running...\n"      exit    fi}function_stop_mysql(){    if [ ! -e "$mysql_sock" ];then       printf "MySQL is stopped...\n"       exit    else       printf "Stoping MySQL...\n"       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown   fi}function_restart_mysql(){    printf "Restarting MySQL...\n"    function_stop_mysql    sleep 2    function_start_mysql}case $1 instart)    function_start_mysql;;stop)    function_stop_mysql;;restart)    function_restart_mysql;;*)    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"esac
指令碼考到各自的運行路徑下:
[[email protected] ~]#cp /mysqldb/3306/mysqld  /mysqldb/3307/(設定檔連接埠改為port=3307)[[email protected] ~]#cp /mysqldb/3306/mysqld  /mysqldb/3308/(設定檔連接埠改為port=3308)
設定許可權:

密碼會放在mysqld目錄裡所有使用權限設定的安全一些

[[email protected] ~]#chmod 700 /mysqldb/3306/mysqld[[email protected] ~]#chmod 700 /mysqldb/3307/mysqld[[email protected] ~]#chmod 700 /mysqldb/3308/mysqld
啟動服務:
[[email protected] ~]#/mysqldb/3306/mysqld start[[email protected] ~]#/mysqldb/3307/mysqld start[[email protected] ~]#/mysqldb/3308/mysqld start
查看服務啟動:
[[email protected] ~]#ss -ntlState      Recv-Q Send-Q Local Address:Port               Peer Address:Port              LISTEN     0      50               *:3307                         *:*                  LISTEN     0      50               *:3308                         *:*                  LISTEN     0      128              *:111                          *:*                  LISTEN     0      5      192.168.122.1:53                           *:*                  LISTEN     0      128              *:22                           *:*                  LISTEN     0      128      127.0.0.1:631                          *:*                  LISTEN     0      100      127.0.0.1:25                           *:*                  LISTEN     0      50               *:3306                         *:*                  LISTEN     0      128             :::111                         :::*                  
測試連接:

需要用sock檔案串連mysql(指定資料庫路徑串連)

[[email protected] ~]#mysql -S /mysqldb/3306/socket/mysql.sock[[email protected] ~]#mysql -S /mysqldb/3307/socket/mysql.sock[[email protected] ~]#mysql -S /mysqldb/3308/socket/mysql.sock
通過查看連接埠判斷進入是哪個執行個體:
MariaDB [(none)]>  show variables like ‘port‘;+---------------+-------+| Variable_name | Value |+---------------+-------+| port          | 3306  |+---------------+-------+   
設定口令:
[[email protected] ~]#mysqladmin -uroot -S /mysqldb/3306/socket/mysql.sock password ‘centos‘
關閉mysql時需要輸入口令:
[[email protected] ~]#/mysqldb/3306/mysqld stopStoping MySQL...Enter password: 
把口令添加到指令碼裡:
[[email protected] ~]#vim /mysqldb/3306/mysqldmysql_pwd="centos"

這時關閉mysql不需要輸入口令

進入mysql需要口令了:
[[email protected] ~]#mysql -pcentos -S /mysqldb/3306/socket/mysql.sock

MariaDB多執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.