mysql資料庫的常見問題,mysql 問題

本文目錄一覽:

mysql啟動錯誤

一、無法訪問系統資源

MySQL 不能訪問啟動需要的資源是造成而 MySQL 無法啟動的一個常見原因,如:文件,埠等。由於 linux 中用於啟動 mysqld 進程的 mysql 用戶通常是不能登陸的,可以使用類似下面的命令檢查文件的訪問許可權。

sudo -u mysql touch /var/lib/mysql/b

找出問題後,修改對應文件或目錄的許可權或屬主後通常可以解決問題。但有時 mysql 用戶有訪問文件和目錄的許可權,但仍然會被拒絕訪問,例如下面這個例子:

mysql system sudo -u mysql touch /home/mysql/data/a

mysql create table t1 (

id int primary key,n varchar(10

) data directory

ERROR 1030 (HY000): Got error 168 from storage engine

測試說明 mysql 用戶有這個目錄的訪問許可權,但創建文件還是失敗,這種情況讓很多人困惑,這個時候通常是 mysqld 進程的訪問被 linux 的 selinux 或 apparmor 給阻止了,大家可以看到創建的表不是在 mysql 的默認目錄下面,因此 selinux 或 apparmor 的 policy 裡面沒有包含這個目錄的訪問許可權,此時只要對應的修改 policy 就行了,當然把 selinux 或 apparmor 停了也行。

有時雖然對系統資源有訪問的許可權,但系統資源已經被佔用:

mysqld –no-defaults –console –user mysql

2020-11-03T03:36:07.519419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 21171

2020-11-03T03:36:07.740347Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

這個故障產生的原因是另外一個 mysqld 進程已經啟動並佔用了對應的文件。

二、參數設置錯誤

參數設置錯誤造成 MySQL 無法啟動的原因也非常常見,此時先要檢查 MySQL 啟動時會調用的參數,下面的命令可以查詢 MySQL 啟動時調用參數文件的順序:

$ mysqld –verbose –help | grep “Default options ” -A 1

Default options are read from the following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

知道了 MySQL 參數文件的調用順序,我們就可以檢查對應的參數文件,找出其中的錯誤,如果覺得參數文件的可讀性不強,可以使用下面的命令顯示 mysqld 程序將要調用的參數:

$ mysqld –print-defaults

/usr/sbin/mysqld would have been started with the following arguments:

……

注意這個命令顯示完參數後就退出,不會真正運行 mysqld。這個命令和 my_print_defaults mysqld 完全是等價的,只不過後者的顯示方式是一行一個參數。

然後開始對可疑的參數進行調試,我個人喜歡加的參數和順序如下:

1. 在 mysqld 後加上第一個參數 –no-defaults ,這個參數的作用是通知 mysqld 在啟動的時候不要讀任何參數文件;

2. 第二個參數是 –console,這個參數會把錯誤信息輸出到屏幕上,這個參數帶來的一個弊端是所有的信息都輸出到屏幕上,讓屏幕顯得比較亂,但對於我們調試卻是很方便的;

3. 第三個參數是 –log-error-verbosity=3,這個參數會顯示詳細的日誌;

4. 然後再在後面加上有把握的參數,可以一次只加一個參數,然後啟動 mysqld,採用排除法逐步找出錯誤的參數。

mysql資料庫連接不上怎麼辦?

這問題頭疼,是不是要講詳細.。區域網處理方案,一般連接檢查順序:1.查看資料庫監聽埠;2.查看該監聽服務啟動沒有;3.查看驅動包有沒有放(伺服器端common-lib,開發工具common開發包[一般自帶有];4.運行jdbc連接程序,有沒有出異常,出異常上面沒弄好,看看異常,就可以追蹤處理。5.直接使用開發工具的鏈接測試平台,備好各個屬性,添入驅動包,測試鏈接是否成功,成功你的程序有問題,沒成功換驅動包。

如何解決MySQL問題

1、情況一:MySQL的錯誤日誌文件(安裝目錄\MYOA\data5\機器名.err)會記錄如下內容:

InnoDB: Reading tablespace information from the .ibd files…

InnoDB: Error: trying to add tablespace 460 of name ‘.\td_oa\flow_data_35.ibd’

InnoDB: to the tablespace memory cache, but tablespace

InnoDB: 460 of name ‘.\td_oa\exam_data.ibd’ already exists in the tablespace

解決方法:

1)剪切出安裝目錄\MYOA\data5\TD_OA的flow_data_35.ibd和flow_data_35.frm兩個文件;

2)啟動MySQL5_OA服務,使用備份的flow_data_35.sql導入到TD_OA庫中。如果提示flow_data_35表已經存在不能導入,則繼續按後續步驟執行;

3)在data5下手動建立tmp目錄;

4)使用MySQL管理工具或MySQL命令行程序在tmp下建立名稱為flow_data_35的表(包含一個欄位即可);

5)將tmp下的flow_data_35.frm和flow_data_35.ibd拷貝到安裝目錄\MYOA\data5\TD_OA目錄下;

6)在MySQL管理工具或MySQL命令行程序中,進入TD_OA庫,使用「drop table flow_data_35;」命令清除公共表空間中殘留的flow_data_35表的相關信息;

7)進入tmp庫,刪掉flow_data_35表;

8)使用備份的flow_data_35.sql導入到TD_OA庫中;

9)如果還有其他表存在該問題,可重複執行4至8步驟。

2、情況二:MySQL的錯誤日誌文件(安裝目錄\MYOA\data5\機器名.err)會記錄如下內容:

130409 15:54:31 [Note] Plugin ‘FEDERATED’ is disabled.

130409 15:54:31 InnoDB: The InnoDB memory heap is disabled

130409 15:54:31 InnoDB: Mutexes and rw_locks use Windows interlocked functions

130409 15:54:31 InnoDB: Compressed tables use zlib 1.2.3

130409 15:54:32 InnoDB: Initializing buffer pool, size = 1023.0M

InnoDB: VirtualAlloc(1086849024 bytes) failed; Windows error 8

130409 15:54:32 InnoDB: Completed initialization of buffer pool

130409 15:54:32 InnoDB: Fatal error: cannot allocate memory for the buffer pool

130409 15:54:32 [ERROR] Plugin ‘InnoDB’ init function returned error.

130409 15:54:32 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.

130409 15:54:32 [ERROR] Unknown/unsupported storage engine: Innodb

130409 15:54:32 [ERROR] Aborting

解決方法:

此情況出現的原因是myoa\mysql5\my.ini中innodb_buffer_pool_size的值太大,OA伺服器操作系統不支持所致。改小後再啟動mysql5_OA服務即可,一般保持和資料庫大小一致。資料庫大小即是myoa/data5的大小。

3、情況三:mysql服務啟動不了,事件查看器中顯示:The syntax

‘–log-slow-queries’ is deprecated and will be removed in a future

release. Please use ‘–slow-query-log’/’–slow-query-log-file’ instead.

解決方法:安裝目錄\MYOA\data5下的ibdata1、ib_logfile0、ib_logfile1文件屬性被設置為只讀導致,取消只讀控制,重啟mysql5_OA服務即可。

4、情況四:MySQL的錯誤日誌文件(data5\機器名.err)會記錄如下內容:InnoDB: No valid checkpoint found.

解決方法:此問題找不到檢查點,資料庫是無效的,此種情況,只能用熱備份數據恢復。

5、以上四種情況,是2013版OA系統目前比較常見的mysql服務啟動不了的現象和解決辦法,大家可作參考,其他情況的話,再具體分析處理。

6、分析思路總結:遇到mysql5_OA服務啟動不了的情況,首先查看myoa\data5下的錯誤日誌文件,根據日誌中的具體內容進行具體分析。

7、2013版MYSQL服務啟動不了(可以嘗試強制啟動mysql服務)方法如下:

1)打開\MYOA\mysql5\my.ini,去掉innodb_force_recovery=1前邊的注釋。

2)啟動MySQL5_OA服務,此時MySQL處於只讀狀態,可以導出,不可寫入。如果仍不能啟動,可以嘗試將innodb_force_recovery修改為2、3、4、5、6等,直到可以啟動為止。

3)使用MySQL管理工具,將TD_OA等相關的資料庫導出為SQL文件。

4)停止MySQL5_OA服務,刪除TD_OA下的所有文件、ibdata1、ib_logfile0、ib_logfile1等文件。

5)打開\MYOA\mysql5\my.ini,在innodb_force_recovery=1前邊加上#號,將該項注釋掉。

6)啟動MySQL5_OA服務,然後導入此前備份的SQL文件。

7)檢查資料庫,將無法通過該方法恢復的數據表,通過之前自動備份的SQL文件進行恢復。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CRTTS的頭像CRTTS
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

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

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

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

    編程 2025-04-29
  • Java Thread.start() 執行幾次的相關問題

    Java多線程編程作為Java開發中的重要內容,自然會有很多相關問題。在本篇文章中,我們將以Java Thread.start() 執行幾次為中心,為您介紹這方面的問題及其解決方案…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網路爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向位元組流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

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

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

    編程 2025-04-29

發表回復

登錄後才能評論