Win11 XAMPP Carch – Error: MySQL shutdown unexpectedly.

終於還是升級了 Win11,升級完成後慘案還是發生了,該來的還是會來。在我電腦中安裝用來開發用的 XAMPP 中的 MySQL 居然打不開了!!! 還好在 Win10 的時候有遇過一次,也感謝自己有記錄下來,依然有用,解決我 Win11 安裝後 MySQL 崩潰問題,也保住所有資料,本文也帶大家一步一步的做,如您也遇到一樣情況,可以參考本文,希望也能解決您的問題。

升級 Win11後,開啟 XAMPP 出現一堆錯誤的紅字,MySQL 也跟著掛了!!!!

檢視錯誤日誌

由 XAMPP 控制面板開啟 mysql error log (也看不是很懂)

修復錯誤

詳細原因其實也不是很清楚,網路上找到下列這篇文章,似乎是最簡單解決這個問題,本文是依照下列這篇文章進行問題排除,方法與原文有點差異,有興趣可參考原文

參考:xampp mysql and
參考:phpmyadmin dont work

備份資料檔案

如果您的資料已經有資料了,強烈建議備份下來,再來的動作可能會造成原有資料遺失,做危險操作時,花一些時間備份,養成好習慣

資料檔案預設目錄:C:\xampp\mysql\data

複製 backup 目錄中的檔案覆蓋於 data 目錄中

預設 backup 目錄:C:\xampp\mysql\backup

注意!! 若您 資料庫有使用 innodb 在複製 backup 中的檔案時,不可以複製 ibdata1 這個檔案,同時也確保 ibdata1 存在您的 data 目錄中,ibdata1 刪除了,將無法恢復您的資料庫

如果您已誤刪或覆蓋了 ibdata1 這檔案了,還有救

請參考此文章,恢復您的 innodb

參考:recover mysql database from ibdata1

重啟資料庫

覆蓋檔案完成,重啟 MySQL,太好了,沒有報錯,接著開啟 phpMyAdmin 驗證一下是否正常

Youtube 有網友將步驟製成影片,也可以參考這影片

上方步驟完成後,開啟 phpMyAdmin

噴了一些錯誤,但應該是密碼問題,剛覆蓋 backup 的檔案後,如果您的 phpMyAdmin 或其他程式都有設定資料庫登入密碼的話,需要重新設定密碼

MySQL 重設密碼

開啟 XAMPP 面板,按下右側的 Shell 按鈕

輸入下列這段指令更改資料庫 root 密碼

參考:Resetting MySQL Root Password with XAMPP on Localhost

成功開啟 phpMyAdmin

[……]

閱讀更多

MySQL #1067 – Invalid default value for ‘post_date’

datetime 的預設值設定為 0000-00-00 00:00:00 在舊版本沒問題,但在MySQL5.7後會出現 錯誤,主要原因從 MySQL 5.7 開始,SQL 模式預設為 NO_ZERO_DATE ,需禁用此限制。本文提供兩種解法:

方法一、

先將欄位預設值設定為NULL:

再更新預設值

方法二、

先執行關閉 NO_ZERO_DATE 模式

就可以順利執行

https://stackoverflow.com/a/37696251/6784662
https://stackoverflow.com/a/32829623

[……]

閱讀更多

XAMPP Win10 Carch – Error: MySQL shutdown unexpectedly.

不知道怎麼回事,今天打開我本機的開發環境的 XAMPP ,無法啟動 MySQL ,因次開始排除錯誤,也將這個過程紀錄,如您也遇到一樣情況,可以參考本文,希望也能解決您的問題

開啟 XAMPP 出現一堆錯誤的紅字

檢視錯誤日誌

由 XAMPP 控制面板開啟 mysql error log, 紅框這一段似乎是錯誤的原因

修復錯誤

詳細原因其實也不是很清楚,網路上找到下列這篇文章,似乎是最簡單解決這個問題,本文是依照下列這篇文章進行問題排除,不過有點不太一樣就是,有興趣可參考原文
xampp mysql and
phpmyadmin dont work

備份資料檔案

如果您的資料已經有資料了,強烈建議備份下來,再來的動作可能會造成原有資料遺失,做危險操作時,花一些時間備份,養成好習慣

資料檔案預設目錄:C:\xampp\mysql\data

複製 backup 目錄檔案覆蓋於 data 目錄

預設 backup 目錄:C:\xampp\mysql\backup

複製 backup 目錄檔案覆蓋於 data 目錄

注意!! 若您 資料庫有使用 innodb 在複製 backup 中的檔案時,不可以複製 ibdata1 這個檔案,同時也確保 ibdata1 存在您的 data 目錄中,ibdata1 刪除了,將無法恢復您的資料庫

如果您已誤刪了 ibdata1 這檔案了,還有救

請參考此文章,恢復您的 innodb

參考:recover mysql database from ibdata1

重啟資料庫

覆蓋檔案完成,重啟 MySQL,太好了,沒有報錯,接著開啟 phpMyAdmin 驗證一下是否正常

開啟 phpMyAdmin

噴了一些錯誤,但應該是密碼問題,剛覆蓋 backup 的檔案後,如果您的 phpMyAdmin 或其他程式都有設定資料庫登入密碼的話,需要重新設定密碼

MySQL 重設密碼

開啟 XAMPP 面板,按下右側的 Shell 按鈕

輸入下列這段指令更改資料庫 root 密碼

參考:Resetting MySQL Root Password with XAMPP on Localhost

成功開啟 phpMyAdmin

[……]

閱讀更多

MySQL 圖解 LEFT JOIN, INNER JOIN,RIGHT JOIN 的差異及範例

C.L. Moffatt 發表 Visual Representation of SQL Joins 用圖示來解釋各種 SQL Join 非常清楚,本文僅節錄MySQL常用的三種Johin方式,說明其中差異及提供使用範例,主要也是讓我自己清楚這幾種 Join 的用法,有更多Johin 需求的朋友可於文章結尾找到原文網址。

Inner Join

該查詢將返回左表(表A)中所有與右表(表B)中具有匹配記錄的記錄。

範例如下:

Left Join

無論這些記錄與右表(表B)中是否匹配,查詢都返回左表(表A)中的所有記錄及與(表B)匹配的記錄。

Right Join

無論這些記錄與左表(表A)中是否匹配,查詢都返回右表(表B)中的所有記錄及與(表A)匹配的記錄。

本文作者:C.L. Moffatt
原文網址:Visual Representation of SQL Joins

[……]

閱讀更多

WAMP Server change default Browser to Chrome

開啟 WAMP Sever 居然是用 IE 11 開啟,到底對不對阿,這都什麼時期的產物了,雖然直接用瀏覽器輸入網址瀏覽本地端網頁也是可行,但心裡就是有個疙瘩,來哥教你改成用你愛的瀏覽器開

修改設定檔

如果安裝路徑沒有修改的話,開啟下面這個檔案,如果安裝路徑有修改的話,自己去找這個檔案。

用你愛用的文字編輯器打開,照到該死的這一行

替換成瀏覽器執行檔位置

關閉 WAMP Server 重新開啟,SEE Chrome 出現了,開勳

[……]

閱讀更多

XAMPP 換成 WAMP Server 安裝教學

XAMPP 一直來都是我裝在自己電腦中模擬開發環境使用,最大的優點的優點就是非常簡單,在 Windows 一鍵安裝完 MySQL、PHP、PHPMyAdmin,甚至連 Filezilla Server 都可以一次裝到好,省去逐一安裝及配置的時間,又有友善的介面可以開啟這些Server,實在是非常方便。

那麼方便幹嘛換,嘿對,隨時代的更迭,PHP、MySQL、Apache 都會釋出新版本,以 PHP來說 PHP5 到 PHP7 就是一個明顯陣痛過程,部分程式需要重構,但並非所有程式都會上PHP7,然而XAMPP雖然方便但它只安裝一種 PHP 版本,如果我裝 PHP7 的版本就無法開啟 PHP5 時期的程式,這是忽然要改 PHP5 的程式變成沒有這樣的開發環境了

我相信 XAMPP 一定有辦法手動去安裝舊版本的 PHP ,但一定免不了手動安裝及配置,在切換過程中也會需要一些設定,會搞得有一點不優雅,所以如果有更好的解決方案,為何不嘗試呢?想開發什麼版本就切換到哪個版版,WAMP Server 正好有這優點,聽起來是不是很棒呢,開始試試看吧

開始之前準備

安裝新環境時都要有個好習慣,記得先備份好之前的 XAMPP 檔案,還有匯出資料庫,天知道等下安裝後會發生什麼事,至少都還有還原的機會

下載 Wamp Server

官網下載:https://www.wampserver.com/en/

等一下!!! 這什麼瀏覽器?! IE11 為什麼會開啟骨灰級的瀏覽器,阿我也不知道,不行不行這我受不了,於是我把它改回我慣用的 Chrome,不然我心裡過不去阿

至於怎麼改呢?可以參考我另一篇文章

WAMP Server change default Browser to Chrome

控制面板

WAMP Server 開啟後,在 Windows 右下角常駐程式會出現這個 icon ,相關控制功能都在這邊

更改語言

接著滑鼠指標在 icon 的上按「右鍵」,「右鍵」「右鍵」是「右鍵」,就會出現相關設定選單,其中有一個 Language 的選單,但當然不是只有俄文拉,WAMP 內建一堆語言。

再來就是 WAMPP

相容 WAMP 最酷的地方

身為一個 PHP 程序員,電腦裝個幾個版本的 PHP 也是很正常的,在 WAMP 中可以允許我們切換不同版本的 PHP 就在這邊,就這麼簡單,基本的功能面板都在這邊,除此之外還提供很多好用的工具,這就要自己慢慢完囉

相容 XAMPP 不必卸載

最後,XAMPP 與 WAMP Server 的環境都是分別獨立的,連資料庫都是,只要不要同時開啟,基本上兩者都可以使用

[……]

閱讀更多

XAMP phpMyAdmin Error Cannot connect: invalid settings.

安裝完 XAMPP 開啟控制面板,啟動 Apache & MySQL 而在 MySQL 的同列有一個 Admin 按鈕,這就是開啟 phpMyAdmin 的方式,這是一件再平常不過的事,但今天在另一台電腦裝完 XAMP 後開啟 phpMyAdmin 後發生資料庫連線錯誤

錯誤訊息

著手解決

依照經驗這是密碼錯誤造成的,如果你是預設安裝路徑,你可以直接用文字編輯器開啟下方這個檔案

這是 phpMyAdmin 的設定檔,在檔案中找到下面這幾行

發現密碼是沒有被設定的,我們在 $cfg['Servers'][$i]['password'] 中鍵入我們要的密碼,並且把 $cfg['Servers'][$i]['AllowNoPassword'] 改為 false,像下方這樣

接著儲存檔案,重啟 MySQL,重新進入 phpMyAdmin,賓果!! 看到登入畫面了,登入成功

參考

http://jsnwork.kiiuo.com/archives/2738/xampp-mysql-phpmyadmin-%E8%A8%AD%E5%AE%9A-root-%E5%AF%86%E7%A2%BC/

[……]

閱讀更多

IPv4 及 IPv6 最大字串長度

IPv4 address Max string Length

12個數字+3個分隔符=15個字符。

IPv6 address Max string Length

32個十六進制數字+ 7個分隔符= 39個字符。

包含保留映射IPv6地址的IPv4地址 = 45個字符

參考

https://stackoverflow.com/questions/1076714/max-length-for-client-ip-address/7477384#7477384

[……]

閱讀更多

MariaDB vs MySQL versions 版本兼容性比較表

版本兼容性比較表 Replication Compatibility

MySQL 移植 MariaDB 相容性可參考下表

Slave↓ Master→
MariaDB-5.5
MariaDB-10.0
MariaDB-10.1
MariaDB-10.2
MySQL-5.6
MySQL-5.7
MySQL-8.0

MariaDB-5.5
Ok
No
No
No
No
No
No

MariaDB-10.0
Ok
Ok

Ok

MariaDB-10.1
Ok
Ok
Ok

Ok

MariaDB-10.2
Ok
Ok
Ok
Ok
Ok
Ok

MySQL-5.6

X
X
X

MySQL-5.7

X
X
X

MySQL-8.0

X
X
X

MariaDB versus MySQL – Compatibility

[……]

閱讀更多

MySQL 解決匯入錯誤 Variable ‘character_set_client’ can’t be set to the value of ‘NULL’

MySQL 匯入發生下列錯誤

Variable ‘character_set_client’ can’t be set to the value of ‘NULL’

今天再進行客戶資料庫移機的時候,從原本舊機器的phpMyAdmin匯出MySQL的sql檔,匯入新的客戶主機,再熟悉不過的匯出匯入動作,居然冒出了個錯誤,好吧!!遇到錯誤就來解決吧,這裡不討論造成原因,這時候不想知道什麼原因,估狗大神快教我怎麼解決,我想神聽到了。

用你爽的編輯器打開SQL檔,此例使用Notepad++

在文件最前端貼上下面這幾行:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

成功匯入

有圖有真相

結論

為什麼呢?? 嘿~自己估狗,我沒很想知道~哈哈哈

參考資料:

[……]

閱讀更多