用NET START命令看看服務是否成功啟動,如果不成功請檢查錯誤日志,或者在DOS下手工運行mysqld.exe看看錯誤提示。因為你可能修改了my.ini后內容非法,數據庫根本沒有啟動。

創新互聯建站主要從事成都網站建設、網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務韓城,10多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18982081108
如果服務成功啟動了,那就用NET START -AN命令看看是否偵聽了3306端口,如果沒有偵聽那就是MY.INI文件需要檢查,否則就應該能夠連接。
如果端口偵聽正常,可以在DOS下執行mysql.exe看看能否連接數據庫,如果能夠連接那么你的PHP應該運行正常,否則就是PHP程序里面mysql_connect語句的主機名稱拼寫錯誤。
一、無法訪問系統資源
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的安裝目錄的bin/myisamchk工具,在命令行中輸入:
myisamchk -c -r ../data/tablename/posts.MYI
然后myisamchk工具會恢復你數據表的索引。
修復完成后重新啟動mysql,問題應該可以解決。
希望能解決你的問題
解決方案
1、檢查sc表的外鍵字段的類型以及大小是否和s表c表完全一致
2、試圖引用的其中一個外鍵沒有建立起索引,或者不是一個primary key , 如果其中一個不是primary key 的放,你必須為它創建一個索引。
3、一個或兩個表是MyISAM引擎的表,若想要使用外鍵約束,必須是InnoDB引擎
我們經常在運行MySQL時會出一些錯誤,也經常被這些錯誤搞得暈頭轉向。當然解決這些問題的首要任務是找到日志信息。
MySQL的錯誤信息是在data目錄下的,且文件名為hostname.err(hostname指的是主機名),但由于每個人安裝的環境不一樣,或你忘記了data目錄的所在位置,你可以通過下面方法查找。
#hostname //獲得主機名
hostname
#find / -name hostname.err
.....
#cd ...
#vi hostname.err
如果你什么都沒改過,
如果是windows下,一般是安裝目錄下的data目錄下 擴展名是.err那個文件,你可以打開安裝目錄下的my.ini文件檢查一下
如果是linux下,一般是/var/log/mysqld.log,你最好用cat /etc/my.cnf看看
分享標題:mysql怎么檢查錯誤 mysql報錯怎么查看
標題路徑:http://www.yijiale78.com/article24/doddsce.html
成都網站建設公司_創新互聯,為您提供網站設計、手機網站建設、做網站、軟件開發、自適應網站、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯