0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

恒訊科技分析:如何解決云服務(wù)器上MySQL數(shù)據(jù)庫的常見問題?

深圳市恒訊科技有限公司 ? 來源:深圳市恒訊科技有限公司 ? 作者:深圳市恒訊科技有 ? 2023-01-09 16:41 ? 次閱讀

互聯(lián)網(wǎng)上的很大一部分內(nèi)容都存儲在數(shù)據(jù)庫中,MySQL是一種流行的選擇。但是,如果我們的動態(tài)內(nèi)容突然無法加載,或者當我們返回我的網(wǎng)站時,會看到一個幾乎空白的白頁,上面有消息“建立數(shù)據(jù)庫連接時出錯”。那么我們應(yīng)該如何解決云服務(wù)器上MySQL數(shù)據(jù)庫的常見問題?

下面內(nèi)容是在幫助大家對云服務(wù)器上的MySQL數(shù)據(jù)庫進行故障排除,按照此處列出的步驟,大家將有望恢復數(shù)據(jù)庫功能。

一、檢查服務(wù)是否正在運行
如果我們的網(wǎng)站無法連接到您的數(shù)據(jù)庫,則該服務(wù)可能根本沒有在監(jiān)聽。檢查我們的MySQL狀態(tài),在Ubuntu和Debian系統(tǒng)上,這可以使用以下命令完成。
sudo服務(wù)mysql狀態(tài)
CentOS和其他Red Hat變體也使用MySQL,但它被命名為MariaDB,因此請改用此命令。
sudo服務(wù)mariadb狀態(tài)
CentOS和Debian上的狀態(tài)檢查輸出將顯示與下面 CentOS示例類似的內(nèi)容,Debian輸出幾乎相同,只是服務(wù)名稱不同。
mariadb.service - MariaDB 數(shù)據(jù)庫服務(wù)器
已加載:已加載(/usr/lib/systemd/system/mariadb.service;已啟用)
活動:活動(運行)自周三 2015-08-05 11:53:38 EEST;3小時23分鐘前
PID:2451 (mysqld_safe)
C組:/system.slice/mariadb.service
├─2451 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─2609 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql...
打印輸出相當冗長,但重要的部分通常是彩色的,以便更好地突出。綠色的“活動(運行)”表示服務(wù)應(yīng)該正常運行,如果相反,它表示“活動(退出)”或“非活動(死)”,則該進程已停止或終止。
Ubuntu將相同的信息壓縮到一行,就像下面的示例輸出一樣。
mysql 啟動/運行,進程5897
如果我們的服務(wù)狀態(tài)不是“正在運行”,請嘗試使用與以前相同的服務(wù)命令重新啟動進程,但使用“重新啟動”而不是“狀態(tài)”。
sudo服務(wù)mysql重新啟動
sudo服務(wù)mariadb重新啟動
如果數(shù)據(jù)庫服務(wù)重新啟動而沒有遇到錯誤,我們可以嘗試使用以下命令連接到它,出現(xiàn)提示時輸入根密碼。
mysql -u root -p
如果我們看到“歡迎使用 MySQL/MariaDB 監(jiān)視器”,則連接成功并且數(shù)據(jù)庫服務(wù)正在運行。相反,如果我們收到如下例所示的錯誤,可能輸入了錯誤的root用戶密碼。再試一次,或者如果我們不確定root 密碼,只需將root替換為其他用戶名,即可使用我們有權(quán)訪問的另一個用戶帳戶登錄。
錯誤1045 (28000):用戶 'root'@'localhost' 的訪問被拒絕(使用密碼:YES)
如果我們的數(shù)據(jù)庫設(shè)置在與Web主機不同的服務(wù)器上,請確保兩臺服務(wù)器可以相互訪問。我們可以使用正確的安裝用戶名使用下面的命令從我們的Web服務(wù)器測試數(shù)據(jù)庫連接。
mysql -u <用戶名> -p -h <數(shù)據(jù)庫服務(wù)器私有IP>

二、檢查配置
當 MySQL正在運行但您的網(wǎng)站仍未正常加載時,或者當我們嘗試手動連接到數(shù)據(jù)庫時收到如下錯誤消息,您應(yīng)該查看服務(wù)配置。
錯誤 2002:無法通過套接字“/tmp/mysql.sock”連接到本地 MySQL 服務(wù)器 (111)
在Debian和Ubuntu服務(wù)器上,MySQL的配置文件通常保存在 /etc/mysql/。也可以將特定于用戶的設(shè)置存儲在 /home//.my.cnf 中,這將覆蓋全局配置。檢查是否設(shè)置了任何用戶級別覆蓋。通常建議為不同的Web應(yīng)用程序使用單獨的用戶名,因此至少檢查那些與我們的頁面加載問題相關(guān)的用戶名。我們可以使用以下兩個命令中的第一個打開全局配置文件,并通過將 替換為數(shù)據(jù)庫用戶名來使用后者打開特定于用戶的配置文件。
須藤納米 /etc/mysql/my.cnf
sudo nano /home/<用戶>/.my.cnf
通過向下滾動到 [client] 和 [mysqld_safe] 設(shè)置,我們會發(fā)現(xiàn)類似于此處示例的內(nèi)容。
[mysqld]
#
# * 基本設(shè)置
#
用戶 = mysql
pid-file = /var/run/mysqld/mysqld.pid
套接字=/var/run/mysqld/mysqld.sock
端口= 3306
basedir = /usr
數(shù)據(jù)目錄 = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
跳過外部鎖定
#
# 而不是跳過網(wǎng)絡(luò)現(xiàn)在默認是只聽
# localhost 哪個更兼容并且安全性更高。
綁定地址 = 127.0.0.1
對于 CentOS 和其他 Red Hat,主要配置文件存儲在略有不同的位置,打開它進行檢查
sudo vi /etc/my.cnf
[mysqld]
數(shù)據(jù)目錄=/var/lib/mysql
套接字=/var/lib/mysql/mysql.sock
這里需要密切注意的行是“socket”、“datadir”和“bind-address”。上例中的參數(shù)采用默認值,在大多數(shù)情況下,我們的配置看起來是一樣的。確保設(shè)置指向正確的目錄,以便 MySQL 可以實際找到所需的文件。檢查“datadir”的最簡單方法是使用下面的命令
sudo ls -l /var/lib/mysql/
輸出將列出該目錄中的所有文件,它應(yīng)該至少包含以下內(nèi)容以及您創(chuàng)建的任何數(shù)據(jù)庫。
drwx------ 2 mysql root 4096 Aug 5 12:23 mysql
drwx------ 2 mysql mysql 4096 Aug 5 12:29 performance_schema
如果數(shù)據(jù)目錄或套接字已被移動并且 MySQL 不知道它們在哪里,請修復配置文件以指向正確的目錄。您可以使用以下命令搜索文件夾。
sudo find / -name performance_schema && sudo find / -name mysql.sock
我們需要檢查的第三個參數(shù)是綁定地址,只有當我們的數(shù)據(jù)庫需要遠程訪問時才真正相關(guān)。在Debian和Ubuntu安裝中,綁定默認設(shè)置為環(huán)回地址,這可以防止從本地主機外部調(diào)用數(shù)據(jù)庫。CentOS 沒有相同的參數(shù),除非手動設(shè)置。對于我們的Web服務(wù)位于與數(shù)據(jù)庫不同的服務(wù)器上的任何設(shè)置,此綁定地址應(yīng)設(shè)置為服務(wù)器自己的私有IP。

三、檢查錯誤日志
如果配置看起來正確并且服務(wù)正在運行,但您的網(wǎng)站仍未按預期加載,請嘗試檢查日志中是否有任何提示可能是什么原因。
Debian和Ubuntu服務(wù)器將錯誤日志存儲到 /var/log/mysql/error.log。我們可以使用“l(fā)ess”來閱讀日志,但這可能不是很方便,因為日志中包含的不僅僅是嚴重錯誤。相反,使用“grep”搜索日志。
sudo grep -i 錯誤 /var/log/mysql/error.log
如果我們在最近的日志中找不到任何內(nèi)容,請同時檢查存檔的日志。為此,請使用“zgrep”和與常規(guī)“grep”相同的命令
須藤 zgrep -i 錯誤 /var/log/mysql/error.log.1.gz
由于CentOS下的數(shù)據(jù)庫命名為MariaDB而不是MySQL,所以日志也以不同的名稱保存。您可以使用以下命令搜索日志。
sudo grep -i 錯誤 /var/log/mariadb/mariadb.log
Debian 系統(tǒng)還將 MySQL 事件報告到 /var/log/syslog,以過濾掉其他所有內(nèi)容,使用“grep”和兩個由 .* 分隔的關(guān)鍵字來表達“和”,就像下面的命令一樣。
sudo grep -i -E 'mysql.*error' /var/log/syslog
如果我們找不到任何有用的東西,請嘗試不同的關(guān)鍵字,例如“開始”以查看服務(wù)上次重新啟動的時間,或“失敗”以查找可能不會報告為錯誤的任何不太重要的問題。

以上是解決云服務(wù)器上MySQL數(shù)據(jù)庫的常見問題。希望能幫助到大家參考!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3716

    瀏覽量

    64045
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    26300
  • 云服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    491

    瀏覽量

    13286
收藏 人收藏

    評論

    相關(guān)推薦

    一文詳解企業(yè)數(shù)據(jù)庫是干嘛的

    業(yè)數(shù)據(jù)庫是企業(yè)將其數(shù)據(jù)庫系統(tǒng)從傳統(tǒng)的本地數(shù)據(jù)中心遷移到由第三方
    的頭像 發(fā)表于 09-13 11:49 ?155次閱讀

    科技分析數(shù)據(jù)庫rds和redis區(qū)別是什么如何選擇?

    數(shù)據(jù)庫RDS(Relational Database Service)和Redis是兩種不同類型的數(shù)據(jù)庫服務(wù),它們有各自的特點和適用場景: 1、數(shù)
    的頭像 發(fā)表于 08-19 15:31 ?196次閱讀

    科技分析:sql數(shù)據(jù)庫怎么用?

    。 2、安裝數(shù)據(jù)庫軟件: 在您的服務(wù)器或本地計算機上安裝所選的數(shù)據(jù)庫軟件。 3、配置數(shù)據(jù)庫服務(wù)器: 根據(jù)需要配置
    的頭像 發(fā)表于 07-15 14:40 ?219次閱讀

    服務(wù)器數(shù)據(jù)恢復-華為ECS服務(wù)器數(shù)據(jù)恢復案例

    服務(wù)器數(shù)據(jù)恢復環(huán)境: 華為ECS服務(wù)器,linux操作系統(tǒng),mysql
    的頭像 發(fā)表于 12-27 15:03 ?784次閱讀
    <b class='flag-5'>服務(wù)器</b><b class='flag-5'>數(shù)據(jù)</b>恢復-華為ECS<b class='flag-5'>云</b><b class='flag-5'>服務(wù)器</b><b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實例,
    的頭像 發(fā)表于 12-08 14:18 ?948次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復案例

    eclipse怎么連接數(shù)據(jù)庫mysql

    連接Eclipse和MySQL數(shù)據(jù)庫可以通過JDBC(Java Database Connectivity)來實現(xiàn)。以下是詳細步驟: 下載并安裝MySQL數(shù)據(jù)庫:你首先需要下載并安裝
    的頭像 發(fā)表于 12-06 11:06 ?1054次閱讀

    MySQL數(shù)據(jù)庫的url地址

    MySQL數(shù)據(jù)庫的URL地址是用于連接到MySQL服務(wù)器的地址。URL是一種統(tǒng)一資源定位符,用于指定特定資源的位置和訪問方式。MySQL
    的頭像 發(fā)表于 12-06 10:58 ?2199次閱讀

    mysql數(shù)據(jù)庫基礎(chǔ)命令

    MySQL是一個流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),經(jīng)常用于存儲、管理和操作數(shù)據(jù)。在本文中,我們將詳細介紹MySQL的基礎(chǔ)命令,并提供與每個命令相關(guān)的詳細解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?451次閱讀

    mysql數(shù)據(jù)庫備份與還原

    法、備份文件的恢復以及一些常見問題的解決方案。 第一部分:MySQL備份的不同方法 1.1 使用mysqldump命令備份 mysqldump是MySQL提供的一個命令行工具,用于備份數(shù)據(jù)
    的頭像 發(fā)表于 11-23 14:32 ?1024次閱讀

    MySQL數(shù)據(jù)庫基礎(chǔ)知識

    的基礎(chǔ)知識,包括其架構(gòu)、數(shù)據(jù)類型、表操作、查詢語句和數(shù)據(jù)導入導出等方面。 MySQL 數(shù)據(jù)庫架構(gòu) MySQL
    的頭像 發(fā)表于 11-21 11:09 ?843次閱讀

    mysql是一個什么類型的數(shù)據(jù)庫

    MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),用于存儲和管理大量結(jié)構(gòu)化數(shù)據(jù)。它被廣泛用于各種應(yīng)用程序和網(wǎng)站的后端,包括電子商務(wù)平臺、社交媒體網(wǎng)站、金融系統(tǒng)等等。MySQL的特點是
    的頭像 發(fā)表于 11-16 14:43 ?1457次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—MySQL數(shù)據(jù)庫表誤刪除記錄的數(shù)據(jù)恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境: 一臺本地windows sever操作系統(tǒng)服務(wù)器,服務(wù)器上部署mysql數(shù)據(jù)庫
    的頭像 發(fā)表于 11-09 15:16 ?1149次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>表誤刪除記錄的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    如何提高Mysql數(shù)據(jù)庫的訪問瓶頸

    為了提高Mysql數(shù)據(jù)庫的訪問瓶頸,常用的方法有如下兩個: 在服務(wù)器端增加緩存服務(wù)器緩存常用的數(shù)據(jù)(例如redis) 增加連接池,來提高
    的頭像 發(fā)表于 11-08 16:22 ?938次閱讀
    如何提高<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b>的訪問瓶頸

    服務(wù)器數(shù)據(jù)恢復—服務(wù)器ECS數(shù)據(jù)恢復案例

    服務(wù)器數(shù)據(jù)恢復環(huán)境: 阿里ECS網(wǎng)站服務(wù)器,linux操作系統(tǒng)+mysql
    的頭像 發(fā)表于 11-07 15:10 ?845次閱讀
    <b class='flag-5'>服務(wù)器</b><b class='flag-5'>數(shù)據(jù)</b>恢復—<b class='flag-5'>云</b><b class='flag-5'>服務(wù)器</b>ECS<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    有沒有mcu遠程讀寫服務(wù)器mysql數(shù)據(jù)庫方法?

    有沒有mcu通過控制wifi芯片遠程讀寫服務(wù)器mysql數(shù)據(jù)庫?相應(yīng)的mcu和wifi模塊的數(shù)據(jù)手冊及控制方法?
    發(fā)表于 09-28 06:02