本文目錄一覽:
- 1、mysql 錯誤代碼2013
- 2、mysql錯誤代碼1045 是為什麼
- 3、mysql啟動錯誤
- 4、mysql資料庫出現錯誤代碼1064是什麼原因?
- 5、win10無法啟動mysql服務 錯誤代碼1067
mysql 錯誤代碼2013
原因:
MySQL默認connect_timeout是5秒,超過了這個時間MySQL的server端就會返回「Bad handshake」。
解決辦法:
1.大多數時候設置”set global connect_timeout=60″是可以解決問題的;
我們可以通過執行「SHOW STATUS LIKE ‘aborted%’」,可以觀察到
Variable_name
Value
Aborted_clients 6
Aborted_connects 15010
覺得是否要增加connect_timeout的時間,”Aborted_connects”將會隨著服務端放棄客戶端初始連接而增加。如果”Aborted_connects”很大,並且不斷增加,就需要增加”connect_timeout”.
2.在MySQL的配置文件中[mysqld]添加”skip-name-resolve”,減少域名解析的時間
3.部署伺服器端的網路要好,至少大於100Mbps/s
4.如果是在調用mysql_query的時候出現的問題,那就需要把”net_read_timeout”的時間調成30秒,或者60秒,或者更大的值
5.如果還不能解決問題,那估計是你的SQL語句中含有BLOB這種大類型,我們就需要增加”max_allowed_packet”的值了
mysql錯誤代碼1045 是為什麼
可能是密碼錯誤,或者用戶忘記密碼
mysql CREATE USER ‘nonexistant’@’%’ IDENTIFIED BY ‘123456’;Query OK, 0 rows affected (0.00 sec)
修復:檢查和/或重置密碼:您無法從 MySQL 以純文本格式讀取用戶密碼,因為密碼哈希用於身份驗證,但您可以將哈希字元串與「PASSWORD」函數進行比較。
我們可以看到 PASSWORD(’forgotten’)哈希與 authentication_string 列不匹配,這意味著 password string =’forgotten’ 不是正確的登錄密碼。如果您需要覆蓋密碼,可以執行以下查詢:
mysql set password for ‘nonexistant’@’%’ = ‘hello$!world’;Empty set (0.00 sec)
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資料庫出現錯誤代碼1064是什麼原因?
說明拼寫出現錯誤。以錯誤拼寫為例講解mysql資料庫出現錯誤代碼1064的情況:
1、輸入如圖所示的SQL語句。
2、會看到有error錯誤信息提示 如圖大致意思就是第一行這句SQL語句有語法錯誤。
3、仔細閱讀語句會看到select這個拼寫錯。
4、where拼寫錯,修改即可。
win10無法啟動mysql服務 錯誤代碼1067
解決方法:
1、打開my.ini文件,找到default-storage-engine=InnoDB這一行,把它改成default-storage-engine=MyISAM;
2、刪除在MySQL安裝目錄下的Data目錄中的ib_logfile0和ib_logfile1;
3、找到在配置MySQL伺服器時指定的InfoDB目錄刪除掉ibdata1
根據my.ini文件中:#*** INNODB Specific options *** innodb_data_home_dir=”D:/”;
4、重新啟動MySQL的Service。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129626.html