亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分分鐘搭建MySQL一主多從環境(r12筆記第31天)

發布時間:2020-08-08 07:30:19 來源:ITPUB博客 閱讀:196 作者:jeanron100 欄目:MySQL數據庫

   之前寫過一篇分分鐘搭建MySQL Group Replication的測試環境,如果我們在一臺服務器上想搭建一主多從的測試環境,怎么能夠分分鐘搞定呢,其實稍花點時間寫個腳本即可搞定,無非就是把哪些程式化的東西整合起來,化繁為簡。能夠提高效率才是好。

   搭建主從的環境,我們還是準備一個配置文件init2.lst,里面主要是端口和節點標示。

24801 s1   Y
24802 s2   N
24803 s3   N
24804 s4   N
24805 s5   N比如上面的寫法,就是我創建了5個節點,端口是第一列,第2列是節點的一個標示,生成的節點目錄名就是參考這個,第3列是節點的角色,比如一主四從。主為P,從為N


統一的參數文件,這個地方是值得我們改進的地方,因為個別的配置化參數的不同,就無需指定多個參數文件,可以動態生成。# cat s2.cnf
[mysqld]
# server configuration
datadir=${base_data_dir}/${node_name}
basedir=${base_dir}

port=${port}
socket=${base_data_dir}/${node_name}/${node_name}.sock
server_id=${port}
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW

而這個功能主角就是整個腳本內容了。

腳本的內容如下:

base_dir=/usr/local/mysql
base_data_dir=/home/data
pri_port=`cat init2.lst|grep Y|awk '{print $1}'`
pri_ip=127.0.0.1
pri_node=`cat init2.lst|grep Y|awk '{print $2}'`

function init_node
{
port=$1
node_name=$2
primary_flag=$3
${base_dir}/bin/mysqld --initialize-insecure --basedir=${base_dir} --datadir=${base_data_dir}/${node_name} --explicit_defaults_for_timestamp

chown -R mysql:mysql  ${base_data_dir}/${node_dir}

cp ${base_data_dir}/s2.cnf ${base_data_dir}/${node_name}/${node_name}.cnf
sed -i 's:${base_data_dir}:'"${base_data_dir}:g"'' ${base_data_dir}/${node_name}/${node_name}.cnf
sed -i 's:${base_dir}:'"${base_dir}:g"'' ${base_data_dir}/${node_name}/${node_name}.cnf
sed -i 's:${node_name}:'"${node_name}:g"''  ${base_data_dir}/${node_name}/${node_name}.cnf
sed -i 's:${port}:'"${port}:g"''  ${base_data_dir}/${node_name}/${node_name}.cnf

chown -R mysql:mysql ${base_data_dir}/${node_name}

${base_dir}/bin/mysqld_safe --defaults-file=${base_data_dir}/${node_name}/${node_name}.cnf &

sleep  5

${base_dir}/bin/mysql -P${port}  -S ${base_data_dir}/${node_name}/${node_name}.sock  -e "show databases"

if [[ ${primary_flag} = 'Y' ]];then

mysql -P${port}  -S ${base_data_dir}/${node_name}/${node_name}.sock -e "
CREATE USER rpl_user@'%';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
FLUSH PRIVILEGES;
"
elif [[ ${primary_flag} = 'N' ]];then
echo ${pri_node}"primary"
echo ${pri_port}
mysqldump -P${pri_port} -S ${base_data_dir}/${pri_node}/${pri_node}.sock  --default-character-set=utf8 --single-transaction -R --triggers -q --all-databases  |mysql -P${port}  -S ${base_data_dir}/${node_name}/${node_name}.sock

echo "CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' , MASTER_HOST='127.0.0.1',MASTER_PORT="${pri_port}",MASTER_AUTO_POSITION = 1"|mysql -P${port}  -S ${base_data_dir}/${node_name}/${node_name}.sock

mysql -P${port}  -S ${base_data_dir}/${node_name}/${node_name}.sock -e "
start slave;
show slave status\G;
"
else
   echo 'Please check variable primary_flag'
fi
}

#MAIN

while read line
do
echo ${seed_list}
init_node $line
done <init2.lst 有了之前的模板和基礎準備,整個過程大概也就一個小時就能夠在一個小時左右完成測試和練習。

 我寫文章的這會兒,已經創建了快十多遍。所以分分鐘絕對不是噱頭。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汕头市| 二手房| 阜阳市| 海原县| 太仓市| 维西| 清远市| 德惠市| 洛川县| 渑池县| 都安| 勃利县| 甘孜| 宜黄县| 台江县| 额尔古纳市| 凤翔县| 镇赉县| 宜章县| 剑河县| 兰州市| 彰化市| 泽库县| 海兴县| 通河县| 闵行区| 舒兰市| 麦盖提县| 合水县| 达孜县| 虞城县| 黄梅县| 磴口县| 喜德县| 台湾省| 阿尔山市| 永春县| 麻栗坡县| 泸水县| 社旗县| 甘泉县|