線上mysql備份 線上mysql資料庫備份

2021-10-18 15:17:07 字數 2140 閱讀 6550

#!/bin/bash

# filename: mysqlbackup.sh

# desc: mysql databases backup tool.

# author: chenzm

# email:[email protected]

# homepage:

# version: 0.0.1

# lastchange: 2013-11-15 09:16:39

# history:

cd /opt/mysqlbackup

. /etc/profile

username='root'

password='password'

u_id=0

g_id=

# 設定mysqldump引數

mysqldump="mysqldump --opt --default-character-set=utf8 --skip-lock-tables -c"

# 設定壓縮引數 從stdin讀取

compress="gzip -9"

# 設定壓縮檔案的字尾名, 請與壓縮引數相對應

compress_ext="gz"

date=$(date +%y-%m-%d)

mkdir -p logs/

# 定義日誌輸入

function log()

echo -ne $ >>logs/backup-$.log

# 計算字元時,分, 秒

function chardate() -lt 60  ]; then

echo "$秒"

elif [ $ -ge 60 ] && [ $ -lt 3600 ]; then

echo "$((date/60))分$((date%60))秒"

else

m=$((date%3600))

echo "$((date/3600))小時$((m/60))分$((m%60))秒"

fitime_host_start=$(date +%s)

retry=0

while :

dodata=$(mysql -u$ -p$ -h ip -e 'show databases' 2>&1)

if [ $? == 0 ]; then

break

elif [ $ -ge 5 ]; then

log "連線到資料庫失敗...退出.\n"

exit 1

fi((retry++))

done

dbs=$(echo

$ | awk 'begin end')

db_total=$(echo $ | awk '')

log "總計資料庫數量: $\n"

log "正在備份,請稍後....\n"

mkdir -p /databak/ip/db/$

for db in $

dotime_db_start=$(date +%s)

log "正在匯出: $..."

$ -u$ -p$ -h ip $

2>>logs/error.log | $ >

/databak/ip/db/$/$.sql.$

# 使用$pipestatus獲取管道之前的exit status

if [ $ != 0  ]; then

log "失敗"

else

((ok++))

log "成功"

fitime_db_end=$(date +%s)

elapsed=$((time_db_end - time_db_start))

log " - 耗時: $(chardate $)\n"

done

#chown -r $:$ /db/ip/$

time_host_end=$(date +%s)

elapsed=$((time_host_end - time_host_start))

log "總計: $ 成功: $ 失敗: $((db_total-ok)) - 耗時: $(chardate $)\n"

log "$(printf '%30s\n' | tr ' ' -) $(date "+%y-%m-%d %h:%m:%s") $(printf '%30s\n' | tr ' ' -)\n"

linux線上鏈結mysql

linux線上鏈結mysql ps aux grep mysqld 先檢視一下mysql 是否已經啟動 netstat ant grep 3306 檢視一下埠是否已經起來 如果已經啟動那麼,請使用本地登入 不是遠端或者互動登入哦 mysqld nt skip grant tables 或者 sudo...

MySQL 線上刪除表流程

如下,先建立這個庫和表 我們把錶進行大量插入資料 這裡來看下線上刪除表的流程 1.show tables 2.show processlist 檢視有沒有程序在用這張表 3.rename table x to x bak 把錶重新命名 4.mysqldump h127.0.0.1 uroot x b...

Linux學習筆記 線上伺服器安裝Mysql

centos7將預設資料庫mysql替換成了mariadb。手動刪除的話,可以先解除安裝mariadb再操作後續步驟 rpm qa grep mariadb 查詢出已安裝的mariadb rpm e nodeps 檔名 一一解除安裝當然,也可以跳過以上操作,直接安裝mysql的話,會覆蓋掉這個資料庫...