Centos7實現MySQL基于日志還原數據的示例代碼_Linux

來源:腳本之家  責任編輯:小易  

如何設置centos7 mysql5.6啟動腳本1、設置開機自啟動chkconfig mysqld on2、/etc/init.d/mysqld start/etc/init.d/mysqld stop3、centos6以前services mysqld startservices mysqld stop4、centos7需要用systemctlsystemctl start mysqldsystemctl stop mysqldwww.anxorj.tw防采集請勿采集本網。

簡介

Binlog日志,即二進制日志文件,用于記錄用戶對數據庫操作的SQL語句信息,當發生數據誤刪除的時候我們可以通過binlog日志來還原已經刪除的數據,還原數據的方法分為傳統二進制文件還原數據和基于GTID的二進制文件還原數據

(2)解壓 $ tar -zxvf mysql-8.0.13-el7-x86_64.tar.gz /home/software (3)重命名 重命名mysql-8.0.13-el7-x86_64為mysql-8.0.13 (4)移動mysql-8.0.13至/data

前期準備

準備一臺Centos7虛擬機,關閉防火墻和selinux,配置IP地址,同步系統時間,安裝MySQL數據庫

看下日志/var/log/mysqld.log,看都提示什么。

傳統二進制日志還原數據

更換yum源參考centos yum安裝mysql5.6希望對你有幫助

修改配置文件

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 最后通過google 搜索 install mariadb on centos 7得到

[[email protected] ~]# vi /etc/my.cnfserver-id=1log-bin=binlog#重啟數據庫服務[[email protected] ~]# systemctl restart mysqld

centos7利用yum安裝mysql 8.0.12的詳細步驟,供大家參考,具體內容如下 清理原有的mysql rpm -qa | grep mysql #可能的顯示情況如下 #mysql-community-libs-8.0.12-1.el7.x86_6

操作數據庫

centos安裝了wget,沒有的話安裝wgetyum install wget2.下載mysql的repo源1:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2:安裝mysql-com

mysql> create database mydb charset utf8mb4;mysql> use mydb;mysql> create table test(id int)engine=innodb charset=utf8mb4;mysql> insert into test values(1);mysql> insert into test values(2);mysql> insert into test values(3);mysql> insert into test values(4);mysql> commit;mysql> update test set id=10 where id=4;mysql> commit;mysql> select * from test;+------+| id |+------+| 1 || 2 || 3 || 10 |+------+4 rows in set (0.00 sec)mysql> drop database mydb;

1、InnoDB: Upgrade after a crash in not supported第一個錯誤說你升級啟動mysql 5.7.18失敗,redo log 被mysql5.7.9之前的版本創建。刪掉舊的文件,重新啟動。2、cannot add

查看二進制日志信息

centos默認安裝mariaDB 其實也是mysql的一個分支,操作和mysql一模一樣,當然你也可以下載mysql安裝包安裝mysql 只要是支持centos7或redhat7就行 展開全部

mysql> show master status\G;*************************** 1. row *************************** File: binlog.000001 Position: 1960 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec) #查找創庫和刪庫的點,為219和1868mysql> show binlog events in 'binlog.000001';+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| binlog.000001 | 219 | Query | 1 | 329 | create database mydb charset utf8mb4 || binlog.000001 | 1868 | Query | 1 | 1960 | drop database mydb |+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+

默認安裝的是 MariaDB yum -y install mariadb-server mariadb mariadb-devel systemctl start mariadb systemctl enable mariadb mysql_secure_installation firewall-cmd --permane

另存為二進制日志信息

我們需要將MySQL官方的Repo加到CentOS的repo里面。訪問->MySQL官方的repo列表找到鏈接地址:http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm在Ce

[[email protected] ~]# mysqlbinlog --start-position=219 --stop-position=1868 /var/lib/mysql/binlog.000001 > /tmp/binlog.sql

查看殘留的目錄: # whereis mysql 然后刪除mysql目錄: # rm –rf /usr/lib64/mysql 2、下載mysql的repo源 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarc

恢復數據

mysql的數據存儲目錄(這個目錄依據my.cnf配置文件中的datadir而異),也就是存在于mysql數據存儲目錄下的mysql-bin.index文件,刪除之即可。 五、selinux的問題,centos下最容

#臨時關閉二進制日志記錄以免重復記錄mysql> set sql_log_bin=0;#恢復數據mysql> source /tmp/binlog.sql#重啟二進制日志記錄mysql> set sql_log_bin=1;

data shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server

查看數據恢復情況

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mydb || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec)mysql> use mydb;Database changedmysql> select * from test;+------+| id |+------+| 1 || 2 || 3 || 10 |+------+4 rows in set (0.00 sec)、

基于GTID二進制日志還原數據

修改配置文件

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 最后通過google 搜索 install mariadb on centos 7得到

[[email protected] ~]# vi /etc/my.cnfserver-id=1log-bin=binloggtid_mode=ONenforce_gtid_consistency=truelog_slave_updates=1#重啟數據庫服務[[email protected] ~]# systemctl restart mysqld

操作數據庫

centos安裝了wget,沒有的話安裝wgetyum install wget2.下載mysql的repo源1:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2:安裝mysql-com

mysql> create database mydb1;mysql> use mydb1;Database changedmysql> create table t1(id int)engine=innodb charset=utf8mb4;mysql> insert into t1 values(1);mysql> insert into t1 values(2);mysql> insert into t1 values(3);mysql> insert into t1 values(11);mysql> insert into t1 values(12);mysql> commit;mysql> select * from t1;+------+| id |+------+| 1 || 2 || 3 || 11 || 12 |+------+5 rows in set (0.00 sec)mysql> drop database mydb1;

查看二進制日志信息

centos默認安裝mariaDB 其實也是mysql的一個分支,操作和mysql一模一樣,當然你也可以下載mysql安裝包安裝mysql 只要是支持centos7或redhat7就行 展開全部

mysql> show master status\G;*************************** 1. row *************************** File: binlog.000003 Position: 1944 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 51d3db57-bf69-11ea-976c-000c2911a022:1-81 row in set (0.00 sec)mysql> show binlog events in 'binlog.000003';+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+| binlog.000003 | 154 | Gtid | 1 | 219 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:1' || binlog.000003 | 219 | Query | 1 | 316 | create database mydb1 || binlog.000003 | 1784 | Gtid | 1 | 1849 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:8' || binlog.000003 | 1849 | Query | 1 | 1944 | drop database mydb1 |+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+

另存為二進制日志信息

我們需要將MySQL官方的Repo加到CentOS的repo里面。訪問->MySQL官方的repo列表找到鏈接地址:http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm在Ce

#8號事務記錄為刪除數據庫,因此只需恢復1-7號事務記錄即可[[email protected] ~]# mysqlbinlog --skip-gtids --include-gtids='51d3db57-bf69-11ea-976c-000c2911a022:1-7' /var/lib/mysql/binlog.000003 > /tmp/gtid.sql

參數說明:

--include-gtids:包含事務

--exclude-gtids:排除事務

--skip-gtids:跳過事務

恢復數據

mysql的數據存儲目錄(這個目錄依據my.cnf配置文件中的datadir而異),也就是存在于mysql數據存儲目錄下的mysql-bin.index文件,刪除之即可。 五、selinux的問題,centos下最容

mysql> set sql_log_bin=0;mysql> source /tmp/gtid.sqlmysql> set sql_log_bin=1;

查看數據恢復情況

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mydb || mydb1 || mysql || performance_schema || sys |+--------------------+6 rows in set (0.00 sec)mysql> use mydb1;Database changedmysql> select * from t1;+------+| id |+------+| 1 || 2 || 3 || 11 || 12 |+------+5 rows in set (0.00 sec)

 到此這篇關于Centos7實現MySQL基于日志還原數據的示例代碼的文章就介紹到這了,更多相關Centos7 MySQL日志還原數據內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

展開全部 在 CentOS7 上安裝 MySQL5.7[日期:2016-06-26] 來源:Linux社區 作者:Linux [字體:大 中 小] 在 CentOS7 上安裝 MySQL5.71 通過 SecureCRT 連接到阿里云 CentOS7 服務器;2 進入到目錄 /usr/local/ 中:cd /usr/local/3 創建目錄 /usr/local/tools,如果有則忽略: mkdir -p tools4 創建 /usr/local/mysql 目錄,如果已存在則忽略:mkdir -p mysql5 進入到目錄 /usr/local/tools 中:cd tools/6 查看系統中是否已安裝 MySQL 服務:rpm -qa | grep mysql或內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • linux 后臺日志 mysql 錯誤異常的解釋(推薦)
  • windows和linux安裝mysql后啟用日志管理功能的方法
  • shell中如何刪除文本比較長的行的實現方法
  • apache配置參數deny和allow的使用實例
  • sersync實現數據實時同步的方法
  • linux系統下oracle11gr2靜默安裝的經驗分享
  • linux下svn服務器同時支持apache的http和svnserve獨立服務器兩種
  • linux 下讀xml 的類詳解及實現代碼
  • 詳解linux環境下nodejs的安裝配置(helloworld)
  • varnish 配置文件分享(sens楊 注釋)
  • centos 8.0.1905 安裝 zabbix4.4版本 (已驗證)
  • linux服務器下lnmp安裝與配置方法
  • centos7mysql5.7版本的數據庫怎么連接
  • 如何設置centos7 mysql5.6啟動腳本
  • centos7怎么啟動mysql
  • centos7怎么安裝mysql
  • Centos7如何安裝mysql-8.0.13-el7-x86_64.tar.gz
  • centos7 安裝mysql8.0 systemctl start mysqld 卡住但是服務是起...
  • centos7安裝mysql 提示Redirecting to /bin/systemctl restar...
  • centOS7上yum install mysql怎么默認安裝的mariadb
  • centos7利用yum安裝mysql 8.0.12
  • Centos7安裝mysql缺乏yum源怎么安裝?
  • centOS7安裝mysql服務啟動失敗service mysqld start
  • centos7能安裝mysql數據庫嗎
  • centos7 默認mysql什么版本
  • CentOS7安裝MySQL
  • centOS7安裝MySQL數據庫
  • 求助centos7,mysql 啟動服務出錯的問題
  • 如何用CentOS7安裝MySQL5.7
  • centos7安裝mysql5.6怎么找回密碼
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全星外虛擬主機華眾虛擬主機linuxwin服務器ftp服務器dns服務器tomcat nginxzabbix云和虛擬化服務器其它首頁服務器linux 后臺日志 mysql 錯誤異常的解釋(推薦)windows和linux安裝mysql后啟用日志管理功能的方法shell中如何刪除文本比較長的行的實現方法apache配置參數deny和allow的使用實例sersync實現數據實時同步的方法linux系統下oracle11gr2靜默安裝的經驗分享linux下svn服務器同時支持apache的http和svnserve獨立服務器兩種linux 下讀xml 的類詳解及實現代碼詳解linux環境下nodejs的安裝配置(helloworld)varnish 配置文件分享(sens楊 注釋)centos 8.0.1905 安裝 zabbix4.4版本 (已驗證)linux服務器下lnmp安裝與配置方法apache開啟.htaccess及.htaccessservice temporarily unavailabllinux下實現免密碼登錄(超詳細)apache rewrite url重定向功能的linux下用cron定時執行任務的方法apache性能測試工具ab使用詳解centos 6.4安裝配置lamp服務器(a阿里云服務器ping不通解決辦法(centos+nginx+php+mysql詳細配置apache you don""t have permiss詳解bash中的腳本調試機制centos7下rsync+crontab定期同步備份linux上創建、列出、刪除docker容器方法總jexus開機自動啟動配置方法詳解linux用戶態與內核態通信的幾種方式apache訪問出現501 method not implementtomeat6.0 連接池數據庫配置詳解linux系統配置nginx的負載均衡linux安裝python3.8.1的教程詳解linux下如何實現快速拷貝大文件
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载