溫馨提示×

溫馨提示×

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

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

MySQL常用到的技術(shù)

發(fā)布時間:2020-06-01 16:26:53 來源:網(wǎng)絡(luò) 閱讀:282 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹MySQL常用到的技術(shù),文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL常用到的技術(shù)吧。

部署數(shù)據(jù)庫

apt-get update

問題 可能報錯

rm /var/lib/apt/lists/lock 

dpkg --configure -a

apt-get install mysql-server

彈框----輸入密碼 確認(rèn)密碼   /// 也可以mysql_secure_installation配置

mysql  -uroot -p'12345'

主從配置

<master>

1、修改主配置文件

vim /etc/mysql/mysql.cnf

[mysqld]
log-bin=master-bin  //啟動MySQL二進(jìn)制日志
server-id=100      
log_bin_index = master-bin.index    //指定記錄二進(jìn)制日志的數(shù)據(jù)庫
binlog_do_db = my_data    //指定記錄二進(jìn)制日志的數(shù)據(jù)庫
binlog_ignore_db = mysql   //指定不記錄二進(jìn)制日志的數(shù)據(jù)庫
...
#bind 127.0.0.1 注釋掉

2、登錄主云服務(wù)器創(chuàng)建從云服務(wù)器用到的賬戶和權(quán)限:

mysql>grant replication slave on *.* to slave@39.105.177.38 identified by '12345';
mysql> flush privileges;

問題 授權(quán)這塊root@39.105.177.38兩者 加單引號 會出錯  未證實(shí)

授權(quán)給想要登錄的主機(jī)

bind   0.0.0.0

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.8' IDENTIFIED BY 'www.linuxidc.com' WITH GRANT OPTION;

3、重啟mysql

service mysql restart

4、查看狀態(tài)

MySQL常用到的技術(shù)      


<slave>

1、編輯配置文件

[mysqld]
log_bin=slave-bin
server-id = 2
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
...
#bind 127.0.0.1 注釋掉

2、重啟服務(wù)

service mysql restart

3、登錄Slave從云服務(wù)器,連接Master主云服務(wù)器

mysql> change master to master_host='39.96.73.99',master_user='slave',master_password='12345',master_log_file='master-bin.000001',master_log_pos=154;

4、啟動Slave數(shù)據(jù)同步。

mysql>start slave;

5、查看Slave信息:

mysql>show slave status\G;

#同步成功

MySQL常用到的技術(shù)      


問題 如果不成功 主從上均執(zhí)行一下命令

MySQL常用到的技術(shù)      

從庫中斷問題

報錯顯示:ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

大多是權(quán)限  和 log pos不一致

slave:      stop slave 
            reset slave
做以下的前提要保證:此刻從庫和主庫數(shù)據(jù)相同 要不然成功之后還會因缺少某條數(shù)據(jù)報錯        
master:     flush logs;         
            show master status;       記下File, Position。
slave:      CHANGE MASTER TO             
                      MASTER_LOG_FILE='file',MASTER_LOG_POS=pos;
            slave start;
            show slave status\G;

報錯        MySQL常用到的技術(shù)      

解決:stop slave ;

     set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;  #跳過slave上的1個錯誤

    start slave ;

線上MYSQL同步報錯故障處理總結(jié) http://blog.itpub.net/15498/viewspace-2134013/

針對第三種 我試了直接三步https://blog.csdn.net/heng_ji/article/details/51013710

 


卸載mysql

sudo apt-get remove mysql-* 
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P    //清理殘留的數(shù)據(jù)

跳出一個對話框,選擇yes 


數(shù)據(jù)庫備份

注意是否需要my.cnf 里邊 解除注釋
備份:
    mysqldump -uroot -p12345 --all-databases --single-transaction  --
master-data=2  --flush-logs  >  /alidata/`date +%F-%H%M`-mysql-all.sql

數(shù)據(jù)恢復(fù)

    還原庫 mysql -uroot -p12345 < /alidata/backup/mysql-all.sql
    導(dǎo)表: mysql -uroot -p12345 進(jìn)去數(shù)據(jù)庫
          use cw100;  
          source /root/crm.sql  在相應(yīng)表里將外表倒進(jìn)去

一個完整的備份腳本例子

#!/bin/bash
# Program
# use mysqldump to Fully backup mysql data per week!
# 2017-8-28 huangwei
# History
# Path
BakDir=/var/lib/mysql/backup
LogFile=/var/lib/mysql/backup/fullBakLog.log
Date=`date +%Y%m%d`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
mysqldump -uroot -pcw100SQ18 --all-databases > $DumpFile
/bin/tar -zvcf $GZDumpFile $DumpFile
/bin/rm $DumpFile


#只保留過去四周的數(shù)據(jù)庫內(nèi)容
count=$(ls -l *.tgz |wc -l)
if [ $count -ge 5 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f $file
fi


Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 開始:$Begin 結(jié)束:$Last $GZDumpFile succ >> $LogFile
#cd $BakDir/daily
#/bin/rm -f

查看binlog日志

eg:
/usr/bin/mysqlbinlog  --no-defaults  --base64-output=decode-rows   -v  --database=cw100   --start-datetime="2019-04-17 08:00:00"   --stop-datetime="2018-07-18 11:00:00"   /usr/lib/mysql/mysql-bin.000154 > /root/binlog.txt

看完以上關(guān)于MySQL常用到的技術(shù),很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI