標籤:設定許可權 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多執行個體