欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
服務(wù)器MySQL server has gone away錯誤解讀!

服務(wù)器MySQL server has gone away錯誤解讀?。?!

對MySQL server has gone away錯誤最常見(jiàn)的原因是服務(wù)器超時(shí)了并且關(guān)閉了連接。缺省地,如果沒(méi)有事情發(fā)生,服務(wù)器在 8個(gè)小時(shí)后關(guān)閉連接。你可在啟動(dòng)mysqld時(shí)通過(guò)設置wait_timeout變量改變時(shí)間限制。

你可以通過(guò)執行mysqladmin version并且檢驗正常運行的時(shí)間來(lái)檢查MySQL還沒(méi)死掉。

如果你有一個(gè)腳本,你只須再發(fā)出查詢(xún)讓客護進(jìn)行一次自動(dòng)的重新連接。

在這種請下,你通常能獲得下列錯誤代碼(你得到的是OS相關(guān)的):

CR_SERVER_GONE_ERROR 客戶(hù)不能發(fā)送一個(gè)問(wèn)題給服務(wù)器。
CR_SERVER_LOST 當寫(xiě)服務(wù)器時(shí),客戶(hù)沒(méi)有出錯,但是它沒(méi)有得到對問(wèn)題的一個(gè)完整的答案(或任何答案)。

如果你向服務(wù)器發(fā)送不正確的或太大的查詢(xún),你也可能得到這些錯誤。如果mysqld得到一個(gè)太大或不正常的包,它認為客戶(hù)出錯了并關(guān)閉連接。如果你需要較大的查詢(xún)(例如,如果你正在處理較大的BLOB列),你可以使用-O max_allowed_packet=#選項(缺省1M)啟動(dòng)mysqld以增加查詢(xún)限制。多余的內存按需分配,這樣mysqld只有在你發(fā)出較大差詢(xún)時(shí)或mysqld必須返回較大的結果行時(shí),才使用更多的內存!

Can't connect to [local] MySQL server錯誤
一個(gè)MySQL客戶(hù)可以?xún)煞N不同的方式連接mysqld服務(wù)器:Unix套接字,它通過(guò)在文件系統中的一個(gè)文件(缺省“/tmp/mysqld.sock”)進(jìn)行連接;或TCP/IP,它通過(guò)一個(gè)端口號連接。Unix套接字比TCP/IP更快,但是只有用在連接同一臺計算機上的服務(wù)器。如果你不指定主機名或如果你指定特殊的主機名localhost,使用Unix套接字。

錯誤(2002)Can't connect to ...通常意味著(zhù)沒(méi)有一個(gè)MySQL服務(wù)器運行在系統上或當試圖連接mysqld服務(wù)器時(shí),你正在使用一個(gè)錯誤的套接字文件或TCP/IP端口。

由檢查(使用ps)在你的服務(wù)器上有一個(gè)名為mysqld的進(jìn)程啟動(dòng)!如果沒(méi)有任何mysqld過(guò)程,你應該啟動(dòng)一個(gè)。見(jiàn)4.15.2 啟動(dòng)MySQL服務(wù)器的問(wèn)題。

如果一個(gè)mysqld過(guò)程正在運行,你可以通過(guò)嘗試這些不同的連接來(lái)檢查服務(wù)器(當然,端口號和套接字路徑名可能在你的安裝中是不同的):

shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h 'ip for your host' version
shell> mysqladmin --socket=/tmp/mysql.sock version
注意hostname命令使用反引號“`”而非正引號“'”;這些導致hostname輸出(即,當前主機名)被代替進(jìn)mysqladmin命令中。

這是可能造成Can't connect to local MySQL server錯誤的一些原因:

mysqld不在運行。
你正在使用MIT-pthreads的一個(gè)系統上運行。如果正在運行在一個(gè)沒(méi)有原生線(xiàn)程的系統上,mysqld使用 MIT-pthreads 軟件包。見(jiàn)4.2 由MySQL支持的操作系統。然而,MIT-pthreads不支持Unix套接字,因此當與服務(wù)器連接時(shí),在這樣一個(gè)系統上,你總是必須明確地指定主機名。試試使用這個(gè)命令檢查到服務(wù)器的連接:
shell> mysqladmin -h `hostname` version
某人刪除了mysqld使用的Unix套接字(缺省“/tmp/mysqld.sock”)。你可能有一個(gè)cron任務(wù)刪除了MySQL套接字(例如,一個(gè)把舊文件從“/tmp”目錄中刪除的任務(wù))。你總是可以運行mysqladmin version并且檢查mysqladmin正在試圖使用的套接字確實(shí)存在。在這種情況下,修復方法是刪除cron任務(wù)而不刪除“mysqld.sock 或將套接字放在其他地方。你能用這個(gè)命令在MySQL配置時(shí)指定一個(gè)不同的套接字地點(diǎn):
shell> ./configure --with-unix-socket-path=/path/to/socket
你也可以使用--socket=/path/to/socket選項啟動(dòng)safe_mysqld和在啟動(dòng)你的MySQL客戶(hù)前設置環(huán)境變量MYSQL_UNIX_PORT為套接字路徑名。你可用--socket=/path/to/socket選項啟動(dòng)mysqld服務(wù)器。如果你改變了服務(wù)器的套接字路徑名,你也必須通知MySQL客戶(hù)關(guān)于新路徑的情況。你可以通過(guò)設置環(huán)境變量MYSQL_UNIX_PORT為套接字路徑名或由提供套接字路徑名作為客戶(hù)的參數做到。你可用這個(gè)命令測試套接字:

shell> mysqladmin --socket=/path/to/socket version
你正在使用 Linux和線(xiàn)程已經(jīng)死了(核心傾倒了)。在這種情況中,你必須殺死其它mysqld線(xiàn)程(例如在啟動(dòng)一個(gè)新的MySQL服務(wù)器之前,可以用mysql_zap腳本)。見(jiàn)18.1 如果MySQL總是崩潰怎么辦。
如果你得到錯誤Can't connect to MySQL server on some_hostname,你可以嘗試下列步驟找出問(wèn)題是什么:

通過(guò)執行telnet your-host-name tcp-ip-port-number并且按幾次回車(chē)來(lái)檢查服務(wù)器是否正常運行。如果有一個(gè)MySQL運行在這個(gè)端口上,你應該得到一個(gè)包含正在運行的MySQL服務(wù)器的版本號的應答。如果你得到類(lèi)似于telnet: Unable to connect to remote host: Connection refused的一個(gè)錯誤,那么沒(méi)有服務(wù)器在使用的端口上運行。
嘗試連接本地機器上的mysqld守護進(jìn)程,并用mysqladmin variables檢查mysqld被配置使用的TCP/IP端口(變量port)。
檢查你的mysqld服務(wù)器沒(méi)有用--skip-networking選項啟動(dòng)。
Host '...' is blocked錯誤
如果你得到象這樣的一個(gè)錯誤:

Host 'hostname' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
這意味著(zhù),mysqld已經(jīng)得到了大量(max_connect_errors)的主機'hostname'的在中途被中斷了的連接請求。在max_connect_errors次失敗請求后,mysqld認定出錯了(象來(lái)字一個(gè)黑客的攻擊),并且阻止該站點(diǎn)進(jìn)一步的連接,直到某人執行命令mysqladmin flush-hosts。

缺省地,mysqld在10個(gè)連接錯誤后阻塞一臺主機。你可以通過(guò)象這樣啟動(dòng)服務(wù)器很容易地調整它:

shell> safe_mysqld -O max_connect_errors=10000 &
注意,對給定的主機,如果得到這條錯誤消息,你應該首先檢查該主機的TCP/IP連接有沒(méi)有問(wèn)題。如果你的TCP/IP連接不在運行,增加max_connect_errors變量的值對你也不會(huì )有幫助!

Too many connections錯誤
如果在你試土連接MySQL時(shí),你得到錯誤Too many connections,這意味著(zhù)已經(jīng)有max_connections個(gè)客戶(hù)連接了mysqld服務(wù)器。

如果你需要比缺省(100)更多的連接,那么你應該重啟mysqld,用更大的 max_connections 變量值。

注意,mysqld實(shí)際上允許(max_connections+1)個(gè)客戶(hù)連接。最后一個(gè)連接是為一個(gè)用Process權限的用戶(hù)保留的。通過(guò)不把這個(gè)權限給一般用戶(hù)(他們不應該需要它),有這個(gè)權限一個(gè)管理員可以登錄并且使用SHOW PROCESSLIST找出什么可能出錯。見(jiàn)7.21 SHOW句法(得到表,列的信息)。

Out of memory錯誤
如果你發(fā)出查詢(xún)并且得到類(lèi)似于下面的錯誤:

mysql: Out of memory at line 42, 'malloc.c'
mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)
ERROR 2008: MySQL client ran out of memory
注意,錯誤指向了MySQL客戶(hù)mysql。這個(gè)錯誤的原因很簡(jiǎn)單,客戶(hù)沒(méi)有足夠的內存存儲全部結果。

為了修正這個(gè)問(wèn)題,首先檢查你的查詢(xún)是否正確。它應該返回這么多的行,這合理嗎?如果是這樣,你可以使用mysql --quick,它使用mysql_use_result()檢索結果集合。這將較少的負擔放在了客戶(hù)端(只是服務(wù)器更多)。

Packet too large錯誤
當一個(gè)MySQL客戶(hù)或mysqld服務(wù)器得到一個(gè)比max_allowed_packet個(gè)字節長(cháng)的包,它發(fā)出一個(gè)Packet too large錯誤并終止連接。

如果你正在使用mysql客戶(hù),你可以通過(guò)用mysql --set-variable=max_allowed_packet=8M指定一個(gè)更大的緩沖區來(lái)啟動(dòng)客戶(hù)程序。

如果你正在使用不允許你指定最大包大小的其他客戶(hù)(例如 DBI),你需要在你啟動(dòng)服務(wù)器時(shí)設置包大小。你可以使用mysqld的命令行選項設置max_allowed_packet為一個(gè)更大的尺寸。例如,如果你正期望將一個(gè)全長(cháng)的BLOB存入一張表中,你將需要用--set-variable=max_allowed_packet=24M選項來(lái)啟動(dòng)服務(wù)器。

 

The table is full錯誤
這個(gè)錯誤發(fā)生在內存臨時(shí)表變得比tmp_table_size字節大時(shí)。為了避免這個(gè)問(wèn)題,你可以使用mysqld的-O tmp_table_size=#選項來(lái)增加臨時(shí)表的大小,或在你發(fā)出有疑問(wèn)的查詢(xún)之前使用SQL選項SQL_BIG_TABLES。見(jiàn)7.25 SET OPTION句法。

你也可以使用--big-tables選項啟動(dòng)mysqld。這與為所有查詢(xún)使用SQL_BIG_TABLES完全相同。


Commands out of sync in client錯誤
如果你在你的客戶(hù)代碼中得到Commands out of sync; You can't run this command now,你正在以錯誤的次序調用客戶(hù)函數!

這可能發(fā)生,例如,如果你正在使用mysql_use_result()并且在你已經(jīng)調用了mysql_free_result()之前試圖執行新查詢(xún)。如果你在mysql_use_result()或mysql_store_result()之間試圖執行返回數據的2個(gè)查詢(xún),它也可能發(fā)生。

Ignoring user錯誤
如果你得到下列錯誤:

Found wrong password for user: 'some_user@some_host'; Ignoring user

這意味著(zhù)在mysqld啟動(dòng)時(shí)或在它再次裝載權限表時(shí),它在user表中找到了一個(gè)有一個(gè)無(wú)效口令的條目。結果,條目簡(jiǎn)單地被權限系統忽略。

可能導致這個(gè)問(wèn)題的原因和修正:

你可能正在運行一個(gè)有一個(gè)老的user表的新版本mysqld。你可以通過(guò)執行mysqlshow mysql user看看口令字段是否少于 16個(gè)字符來(lái)檢查它。如果是這樣,你可以通過(guò)運行scripts/add_long_password腳本改正這種情況。
用戶(hù)有一個(gè)老式的口令(8個(gè)字符長(cháng))并且你沒(méi)使用--old-protocol選項啟動(dòng)mysqld。用一個(gè)新口令更新在user表中的用戶(hù)或用--old-protocol重啟mysqld。
你沒(méi)有使用PASSWORD()函數在在user表中指定了一個(gè)口令。使用mysql以一個(gè)新口令更新在user表中的用戶(hù)。確保使用PASSWORD()函數:
mysql> update user set password=PASSWORD('your password')
where user='XXX';
Table 'xxx' doesn't exist錯誤
如果你得到錯誤Table 'xxx' doesn't exist或Can't find file: 'xxx' (errno: 2),這意味著(zhù)在當前數據庫中沒(méi)有名為xxx的表存在。

注意,因為MySQL使用目錄和文件存儲數據庫和表,數據庫和表名件是區分大小寫(xiě)的?。ㄔ赪in32上,數據庫和表名不是區分大小寫(xiě)的,但是在查詢(xún)中對所有表的引用必須使用相同的大小寫(xiě)?。?

你可以用SHOW TABLES檢查你在當前數據庫中有哪個(gè)表。見(jiàn)7.21 SHOW句法(得到表、列的信息)。


MySQL怎樣處理一個(gè)溢出的磁盤(pán)
當出現一個(gè)磁盤(pán)溢出的情況時(shí),MySQL做下列事情:

它每分鐘檢查一次看是否有足夠空間寫(xiě)入當前行。如果有足夠的空間,它繼續好像發(fā)生什么事情。
每6分鐘它將有關(guān)磁盤(pán)溢出的警告寫(xiě)入日志文件。
為了緩和這個(gè)問(wèn)題,你可以采取下列行動(dòng):

繼續,你只需釋放足夠的空閑磁盤(pán)空間以便插入所有記錄。
放棄線(xiàn)程,你必須發(fā)一個(gè)mysqladmin kill到線(xiàn)程。在下一次檢查磁盤(pán)時(shí),線(xiàn)程將被放棄(在1分鐘內)。
注意,其他線(xiàn)程可能正在等待引起“磁盤(pán)溢出”條件的表。如果你有幾個(gè)“鎖定的”的線(xiàn)程,殺死正在等待磁盤(pán)溢出條件的那個(gè)線(xiàn)程將允許其他線(xiàn)程繼續。
如何從一個(gè)文本文件運行SQL命令
一般地,mysql客戶(hù)被交互性地使用,象這樣:

shell> mysql database然而,也可以把你的SQL命令放在一個(gè)文件中并且告訴mysql從該文件讀取其輸入。要想這樣做,創(chuàng )造一個(gè)文本文件“text_file”,它包含你想要執行的命令。然后如下那樣調用mysql:

shell> mysql database < text_file
你也能啟動(dòng)有一個(gè)USE db_name語(yǔ)句的文本文件。在這種情況下,在命令行上指定數據庫名是不必要的:

shell> mysql < text_file
見(jiàn)12.1 不同的MySQL程序概述。 18.5 MySQL在哪兒存儲臨時(shí)文件
MySQL使用TMPDIR環(huán)境變量的值作為存儲臨時(shí)文件的目錄的路徑名。如果你沒(méi)有設置TMPDIR,MySQL使用系統缺省值,它通常是“/tmp”或“/usr/tmp”。如果包含你的臨時(shí)文件目錄的文件系統太小,你應該編輯safe_mysqld設定TMPDIR指向你有足夠空間的一個(gè)文件系統!你也可以使用mysqld的--tmpdir選項目設置臨時(shí)目錄。

MySQL以“隱含文件”創(chuàng )建所有臨時(shí)文件。這保證了如果mysqld被終止,臨時(shí)文件也將被刪除。使用隱含文件的缺點(diǎn)是你將看不到一個(gè)大的臨時(shí)文件填滿(mǎn)了臨時(shí)文件目錄所在的文件系統。

當排序(ORDER BY或GROUP BY)時(shí),MySQL通常使用一個(gè)或兩個(gè)臨時(shí)文件。最大磁盤(pán)空間需求是:

(存儲東西的長(cháng)度 + sizeof (數據庫指針))
* 匹配的行數
* 2
sizeof(數據庫指針)通常是4,但是在未來(lái)對確實(shí)很大的表可能增加。

對一些SELECT查詢(xún),MySQL也創(chuàng )建臨時(shí)SQL表。這些沒(méi)被隱含且有“SQL_*”格式的名字。

ALTER TABLE和OPTIMIZE TABLE在原數據庫表的同一個(gè)目錄中創(chuàng )建一張臨時(shí)表。

怎樣保護“/tmp/mysql.sock ”不被刪除
如果你有這個(gè)問(wèn)題,事實(shí)上任何人可以刪除MySQL通訊套接字“/tmp/mysql.sock”,在Unix的大多數版本上,你能通過(guò)為其設置sticky(t)位來(lái)保護你的“/tmp”文件系統。作為root登錄并且做下列事情:

shell> chmod +t /tmp
這將保護你的“/tmp”文件系統使得文件僅能由他們的所有者或超級用戶(hù)(root)刪除。

你能執行ls -ld /tmp檢查sticky位是否被設置,如果最后一位許可位是t,該位被設置了。


怎樣作為一個(gè)一般用戶(hù)運行MySQL
MySQL服務(wù)器mysqld能被任何用戶(hù)啟動(dòng)并運行。為了將mysqld改由Unix用戶(hù)user_name來(lái)運行,你必須做下列事情:

如果它正在運行,停止服務(wù)器(使用mysqladmin shutdown)。
改變數據庫目錄和文件以便user_name有權限讀和寫(xiě)文件(你可能需要作為Unix的root用戶(hù)才能做到):
shell> chown -R user_name /path/to/mysql/datadir
如果在MySQL數據目錄中的目錄或文件是符號鏈接,你也將需要順著(zhù)那些鏈接并改變他們指向的目錄和文件。chown -R不能跟隨符號鏈接。

以user_name用戶(hù)啟動(dòng)服務(wù)器,或如果你正在使用MySQL 3.22或以后版本,以Unix root用戶(hù)啟動(dòng)mysqld并使用--user=user_name選項,mysqld將在接受任何連接之前切換到以Unix user_name用戶(hù)運行。
如果在系統被重新啟動(dòng)時(shí),你使用mysql.server腳本啟動(dòng)mysqld,你應該編輯mysql.server用su以用戶(hù)user_name運行mysqld,或使用--user選項調用mysqld。(不改變safe_mysqld是必要的。)
現在,你的mysqld進(jìn)程應該正在作為Unix用戶(hù)user_name運行,并運行完好。盡管有一件事情沒(méi)有變化:權限表的內容。缺省 地(就在運行了腳本mysql_install_db安裝的權限表后),MySQL用戶(hù)root是唯一有存取mysql數據庫或創(chuàng )建或拋棄數據庫權限的用戶(hù)。除非你改變了那些權限,否則他們仍然保持。當你作為一個(gè)Unix用戶(hù)而不是root登錄時(shí),這不應該阻止你作為MySQL root用戶(hù)來(lái)存取MySQL;只要為客戶(hù)程序指定-u root的選項。

注意通過(guò)在命令行上提供-u root,作為root存取MySQL,與作為Unix root用戶(hù)或其他Unix用戶(hù)運行MySQL沒(méi)有關(guān)系。MySQL的存取權限和用戶(hù)名與Unix用戶(hù)名字是完全分開(kāi)的。唯一與Unix用戶(hù)名有關(guān)的是,如果當你調用一個(gè)客戶(hù)程序時(shí),你不提供一個(gè)-u選項,客戶(hù)將試圖使用你的Unix登錄名作為你的MySQL用戶(hù)名進(jìn)行連接。

如果你的Unix機器本身不安全,你可能應該至少在存取表中為MySQL root用戶(hù)放上一個(gè)口令。否則,在那臺機器上有一個(gè)賬號的任何用戶(hù)能運行mysql -u root db_name并且做他喜歡做的任何事情。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
mysqld_multi管理多個(gè)mysqld的服務(wù)進(jìn)程
Mysql 修改密碼
12 條用于 Linux 的 MySQL/MariaDB 安全最佳實(shí)踐
Mysql主從同步(復制)
Win32版與Unix版MySQL比較
Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久