您好,登錄后才能下訂單哦!
本文主要給大家介紹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)
<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;
#同步成功
問題 如果不成功 主從上均執(zhí)行一下命令
從庫中斷問題
報錯顯示: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;
報錯
解決: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è)資訊欄目的。
免責(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)容。