mysql5.5.19主从脚本(master-innodb,slave-myisam)

本文介绍了一个使用 shell 脚本实现 MySQL 多实例的部署过程,包括配置 my.cnf 文件、生成数据文件及从备份中恢复数据的具体步骤。此外,还涉及了如何设置主从复制并进行表结构的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh

#multi-instance

#usage sh tl55.sh $1 $2

#取备份

lastip=`echo $1|awk -F '.' '{print $3$4}'`

echo $lastip

mkdir -p /app/dbbackup/${lastip}

 

 

#解压取POS值

cd /app/dbbackup/${lastip}

wget ftp://g:13@1.1.3.74/$1.rar

unrar x $1.rar

pos=`head -n 30 dump.sql |grep -i "change"|awk  -F'TO' '{print $2}'`

hostip=`/sbin/ifconfig eth0|grep -i "inet addr"|awk  '{print $2}'|awk -F"." '{print $3$4}'`

echo $hostip

cnf=/etc/my.cnf

#配置my.cnf

if [ -f "$cnf" -a ! -f "${cnf}.bak" ];then

cp $cnf $cnf.bak

fi

multi=`cat /etc/my.cnf|grep -i -w "mysqld_multi"`

if [ "${multi}" = "" ];then

sed -i '23a\[mysqld_multi]\nmysqld     = /usr/local/mysql55/bin/mysqld_safe\n' $cnf

fi

 

masterip=$1

sed -i '25a\[mysqld'${lastip}']\nsocket     = /tmp/mysql55.sock'${lastip}'\nport       = '$2'\npid\-file   = '${hostip}'.pid'${lastip}'\ndatadir    = /usr/local/mysql55/data'${lastip}'\nrelay\-log  = '${hostip}'\-relay\-bin\-'${lastip}'\n' $cnf

 

#生成数据文件

if [ -d /app/mysql55/data ];then

 

cd /app/mysql55

scripts/mysql_install_db --datadir=/app/mysql55/data${lastip} --user=mysql

cd /app/mysql55/data${lastip}

tar xvf /root/mysql.tar

#/app/mysql/bin/mysql_install_db --datadir=/app/mysql/var${lastip} --user=mysql

chown -R mysql.mysql /app/mysql55/data${lastip}

/app/mysql55/bin/mysqld_multi start ${lastip}

sleep 5

#/app/mysql55/bin/mysql -uroot -S /tmp/mysql55.sock${lastip} -pmysql_f8ks</app/dbbackup/${lastip}/dump.sql

 

mysql -S /tmp/mysql55.sock${lastip} -pmysql_ro8ks </app/dbbackup/${lastip}/dump.sql

mysql -uroot -S /tmp/mysql55.sock${lastip} -pmysql_roo8ks -e "create database itemlog;use itemlog;CREATE TABLE log20120118 (

  idx int(10) unsigned NOT NULL AUTO_INCREMENT,

  AreaID int(11) DEFAULT '-1',

  GroupID int(11) DEFAULT '-1',

  Action char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,

  Map int(11) DEFAULT '0',

  X int(11) DEFAULT '0',

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (idx)

 

) ENGINE=MyISAM DEFAULT CHARSET=latin1;"

mysql -S /tmp/mysql55.sock${lastip} -pmysql_root_CW4qf8ks -e "create database yblog;use yblog;CREATE TABLE log20120118 (

  idx int(10) unsigned NOT NULL AUTO_INCREMENT,

  AreaID int(11) DEFAULT '-1',

  GroupID int(11) DEFAULT '-1',

  Action char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,

  PTID char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,

  CharName char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,

  IP char(15) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,

) ENGINE=MyISAM DEFAULT CHARSET=latin1;"

 

mysql -S /tmp/mysql55.sock${lastip} -pmys4ks -e "slave stop;CHANGE MASTER TO MASTER_HOST='$1',MASTER_USER='rpl',MASTER_PASSWORD='repl_dgBB690H1H',${pos} slave start;show slave status\G;"

fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值