mysql資料庫無法訪問(mysql資料庫連接不上)

本文目錄一覽:

mysql 資料庫無法啟動

故障處理

移除當前使用的 redo log 文件,然後可以試著啟動資料庫,結果啟動失敗!

提示:

[ERROR] InnoDB: Page [page id: space=0, page number=0] log sequence number 178377412422 is in the future! Current system log sequence number 165909011496.

這樣的錯誤,這是因為 MySQL writer 線程按照配置的時間間隔以 page 為單位刷新 buffer 數據到磁碟。當數據刷新到磁碟的時候,新寫入磁碟的 page 包含了較新的 LSN,此時系統 system 表空間頭的 LSN 並沒有同步更新,通常這是檢查點線程的工作。在正常的崩潰恢復中,MySQL 可以藉助 redo log 來進行前滾和回滾,但是此時 redo log 已經被我們刪掉了,MySQL 無法進行恢復操作。此時,我們設置 innodb_force_recovery=3 來強制啟動 MySQL,仍然啟動不成功,改成 4 後啟動了!

再使用 mysqldump 導出備份,結果噩夢又降臨了!MySQL 又 crash 了。

提示:

InnDB: Failed to find tablespace for table……

設置參數 innodb_force_recovery=5,資料庫仍然啟動失敗,再設置成 6,啟動成功!用 sqldump 順利把數據備份出來了!

再初始化資料庫,把剛剛備份的資料庫導入,資料庫恢復成功完成!

參數說明

這裡的關鍵是設置 innodb_force_recovery 參數,對應這個參數的說明如下:

1. SRV_FORCE_IGNORE_CORRUPT:忽略檢查到的 corrupt 頁;

2. SRV_FORCE_NO_BACKGROUND:阻止主線程的運行,如主線程需要執行 full purge 操作,會導致 crash;

3. SRV_FORCE_NO_TRX_UNDO:不執行事務回滾操作;

4. SRV_FORCE_NO_IBUF_MERGE:不執行插入緩衝的合併操作;

5. SRV_FORCE_NO_UNDO_LOG_SCAN:不查看重做日誌,InnoDB 存儲引擎會將未提交的事務視為已提交;

6. SRV_FORCE_NO_LOG_REDO:不執行前滾的操作。

升級win10後原mysql資料庫無法訪問

 1、首先,查看MySQL的服務是否存在。如果不存在需要先安裝服務。安裝服務的方法是進入MySQL Server的安裝目錄,找到bin目錄,然後找到文件mysqld.exe,使用命令行運行 mysqld –install MySQL57 安裝服務(如果不成功嘗試使用管理員方式運行,MySQL57是服務的名字,默認是MySQL)。

2、如果上述方法安裝服務失敗,則可採用下述方法安裝(成功則跳過此步)。搜索程序「regedit.exe」,即註冊表編輯器,打開後找到 「計算機」——”HKEY_LOCAL_MACHINE”——「SYSTEM」——「CurrentControlSet」——「Services」,然後在該目錄下新建項MySQL57(服務的名字)即可成功建立項目。

3、找到新建的項,然後可以看到其中有ImagePath這一項,這其實是可執行文件的路徑。因為MySQL服務是需要靠mysqld這個命令來啟動的,所以檢查下ImagePath的路徑是否正確。路徑錯誤導致啟動服務時報錯—「無法找到文件」。

4、修改ImagePath的內容為正確的路徑值,正確的值是”D:\MySQL\MySQL Server 5.7\bin\mysqld” –defaults-file=”D:\MySQL\MySQL Server 5.7\my.ini” MySQL 是這種形式的,對照一下,如果路徑不對,修改過來。

5、重啟計算機,再次啟動服務,並可以成功運行MySQL服務。

mysql5.7.12報錯如下情況導致無法連接資料庫應該怎麼辦?

一、mysqld 進程沒有正常運行遇到這種情況首先到伺服器上看看 mysqld 進程是否活著,採用的命令:

二、客戶端不能和進程 mysqld 通信如果 MySQL 伺服器上的 mysqld 進程運行正常,我們再看看客戶端能不能和 mysqld 進行通信,使用下面的命令進行網路連通的測試:telnet localhost 3306

如果本地能通,再到客戶端的機器上把 localhost 換成 MySQL 伺服器的 ip 地址進行測試。如果不能通,通常有兩種原因,一種原因是 OS 或網路的問題,或者是防火牆;另一種原因是 mysqld 自身根本沒有偵聽客戶端的連接請求, mysqld 啟動後對於客戶端的偵聽是分三種情況。

第一種情況

是使用參數 –skip-networking 跳過偵聽客戶端的網路連接,用下面的命令我們可以看到 MySQL 根本沒有偵聽 3306 埠。

第二種情況

使用參數 –bind-address 後面增加對客戶端訪問 IP 地址的限制,例如只偵聽本地的連接

三、賬戶密碼的問題最後一種情況是賬戶密碼的問題,應付這種情況我們有個有力的工具就是查看 MySQL 的 error log, error log 記載信息的詳細程度上由參數 –log-error-verbosity 進行控制的

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/234106.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:13
下一篇 2024-12-11 17:13

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Think-ORM數據模型及資料庫核心操作

    本文主要介紹Think-ORM數據模型建立和資料庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係資料庫之…

    編程 2025-04-27
  • 如何使用Python將CSV文件導入到資料庫

    CSV(Comma Separated Values)是一種可讀性高、易於編輯與導入導出的文件格式,常用於存儲表格數據。在數據處理過程中,我們有時需要將CSV文件導入到資料庫中進行…

    編程 2025-04-27
  • Python批量導入資料庫

    本文將介紹Python中如何批量導入資料庫。首先,對於數據分析和挖掘領域,資料庫中批量導入數據是一個必不可少的過程。這種高效的導入方式可以極大地提高數據挖掘、機器學習等任務的效率。…

    編程 2025-04-27
  • Activiti 6自動部署後不生成資料庫act_hi_*的解決方法

    本文將從多個方面詳細闡述Activiti 6自動部署後不生成資料庫act_hi_*的問題,並提供對應的代碼示例。 一、問題分析 在使用Activiti 6部署流程後,我們發現act…

    編程 2025-04-27
  • Python更新資料庫數據

    Python更新資料庫數據是一個非常實用的功能。在工作中,我們經常需要從外部獲取數據,然後將這些數據保存到資料庫中,或者對現有資料庫中的數據進行更新。Python提供了許多庫和框架…

    編程 2025-04-27

發表回復

登錄後才能評論