亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買(mǎi)流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷(xiāo)推廣
客服中心
業(yè)務(wù)咨詢(xún)
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

MySQL常見(jiàn)問(wèn)題解答及技巧

添加時(shí)間:2013-6-24 16:23:31  添加: 思海網(wǎng)絡(luò) 
 常見(jiàn)問(wèn)題集錦

 MySQL總是崩潰

 首先你應(yīng)該試著找出問(wèn)題mysqld守護(hù)進(jìn)程是否死掉或你的問(wèn)題是否與你的客戶(hù)有關(guān)。你可以用mysqladmin version檢查你的mysqld服務(wù)器正常執(zhí)行了多長(zhǎng)時(shí)間,如果mysqld死了,你可以在文件“mysql-data-directory/'hostname'.err”中找到其原因。


 使用MySQL時(shí)的一些常見(jiàn)錯(cuò)誤

  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ò)設(shè)置wait_timeout變量改變時(shí)間限制。

 如果mysqld得到一個(gè)太大或不正常的包,它認(rèn)為客戶(hù)出錯(cuò)了并關(guān)閉連接。


  Can't connect to [local] MySQL server

 通常意味著沒(méi)有一個(gè)MySQL服務(wù)器運(yùn)行在系統(tǒng)上或當(dāng)試圖連接mysqld服務(wù)器時(shí),你正在使用一個(gè)錯(cuò)誤的套接字文件或TCP/IP端口。

 檢查(使用ps)服務(wù)器上是否有一個(gè)名為mysqld的進(jìn)程啟動(dòng)

 如果一個(gè)mysqld進(jìn)程正在運(yùn)行,可以通過(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命令使用反引號(hào)“`”而非正引號(hào)“'”;這些導(dǎo)致hostname輸出(即,當(dāng)前主機(jī)名)被代替進(jìn)mysqladmin命令中。

  Host '...' is blocked錯(cuò)誤

Host 'hostname' is blocked because of many connection errors.

Unblock with 'mysqladmin flush-hosts'

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

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

shell> safe_mysqld -O max_connect_errors=10000 &

  Too many connections錯(cuò)誤

意味著已經(jīng)有max_connections個(gè)客戶(hù)連接了mysqld服務(wù)器。

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

  Out of memory錯(cuò)誤

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

  注意,錯(cuò)誤指向了MySQL客戶(hù)mysql。這個(gè)錯(cuò)誤的原因很簡(jiǎn)單,客戶(hù)沒(méi)有足夠的內(nèi)存存儲(chǔ)全部結(jié)果。

  首先檢查你的查詢(xún)是否正確

  Packet too large錯(cuò)誤

  一個(gè)MySQL客戶(hù)或mysqld服務(wù)器得到一個(gè)比max_allowed_packet個(gè)字節(jié)長(zhǎng)的包

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


  The table is full錯(cuò)誤

  這個(gè)錯(cuò)誤發(fā)生在內(nèi)存臨時(shí)表變得比tmp_table_size字節(jié)大時(shí)。


  Commands out of sync in client錯(cuò)誤

  正在以錯(cuò)誤的次序調(diào)用客戶(hù)函數(shù)!


  Ignoring user錯(cuò)誤

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

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

  Table 'xxx' doesn't exist錯(cuò)誤

  數(shù)據(jù)庫(kù)和表名件是區(qū)分大小寫(xiě)的!可以用SHOW TABLES檢查你在當(dāng)前數(shù)據(jù)庫(kù)中有哪個(gè)表。

  從一個(gè)文本文件運(yùn)行SQL命令

  可以把SQL命令放在一個(gè)文件中并且告訴mysql從該文件讀取其輸入:創(chuàng)造一個(gè)文本文件“text_file”,它包含要執(zhí)行的命令。然后如下調(diào)用mysql:

shell> mysql database < text_file

  或

shell> mysql < text_file

  啟動(dòng)有USE db_name語(yǔ)句的文本文件。

  怎樣重新設(shè)置一個(gè)忘記的口令

  如果忘記了MySQL的root用戶(hù)的口令,可以使用如下方法恢復(fù):

  通過(guò)發(fā)送一個(gè)kill(不是kill -9)到mysqld服務(wù)器來(lái)關(guān)閉mysqld服務(wù)器。pid 被保存在一個(gè).pid文件中,通常在MySQL數(shù)據(jù)庫(kù)目錄中:

  kill `cat /mysql-data-directory/hostname.pid`

  你必須是一個(gè)UNIX root用戶(hù)或運(yùn)行服務(wù)器的相同用戶(hù)做這個(gè)。

  使用--skip-grant-tables選項(xiàng)重啟mysqld。

  用mysql -h hostname mysql連接mysqld服務(wù)器并且用一條GRANT命令改變口令。見(jiàn)7.26 GRANT和REVOKE句法。也可以用mysqladmin -h hostname -u user password 'new password' 進(jìn)行。

  用mysqladmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES來(lái)裝載權(quán)限表。

  使用DATE列的問(wèn)題

  DATE值的格式是'YYYY-MM-DD'。

  改變一張表中列的順序

  在一個(gè)應(yīng)用程序中,應(yīng)該決不基于他們的位置使用SELECT * 檢索列,因?yàn)楸环祷氐牧械捻樞蛴肋h(yuǎn)不能保證;對(duì)數(shù)據(jù)庫(kù)的一個(gè)簡(jiǎn)單改變可能導(dǎo)致應(yīng)用程序相當(dāng)有戲劇性地失敗。

  可以使用如下方法改變:

  以正確的列順序創(chuàng)建一張新表。

  執(zhí)行INSERT INTO new_table SELECT fields-in-new_table-order FROM old_table.

  刪除或改名old_table。

  ALTER TABLE new_table RENAME old_table。

  數(shù)據(jù)庫(kù)復(fù)制

  MySQL(至今)沒(méi)有數(shù)據(jù)庫(kù)復(fù)制,但是有一些如何實(shí)現(xiàn)的信息。

  復(fù)制一個(gè)數(shù)據(jù)庫(kù)最一般的方法是使用更新日志。

  數(shù)據(jù)庫(kù)備份

  為了得到一個(gè)一致的備份,在相關(guān)的表上做一個(gè)LOCK TABLES。你只需一個(gè)讀鎖定;當(dāng)你在數(shù)據(jù)庫(kù)目錄中做文件的一個(gè)拷貝時(shí),這允許其他線程繼續(xù)查詢(xún)?cè)摫怼H绻阆胍鲆粋€(gè)SQL級(jí)的備份,你可以SELECT INTO OUTFILE。

  備份一個(gè)數(shù)據(jù)庫(kù)的另一個(gè)方法是使用mysqldump程序:

  為你的數(shù)據(jù)庫(kù)做一個(gè)完整的備份:

shell> mysqldump --tab=/path/to/some/dir --opt --full

 
  你也可以簡(jiǎn)單地拷貝所有的表文件(“*.frm”、“*.MYD”和“*.MYI”文件),只要服務(wù)器不在更新任何東西。


  停止mysqld如果它正在運(yùn)行,然后以--log-update選項(xiàng)啟動(dòng)它。你將得到一個(gè)名為“hostname.n”形式的日志文件, 這里n是隨著你每次執(zhí)行mysqladmin refresh或mysqladmin flush-logs、FLUSH LOGS語(yǔ)句、或重啟服務(wù)器而遞增的一個(gè)數(shù)字。這些日志文件向你提供了在你執(zhí)行mysqldump處后面進(jìn)行的復(fù)制數(shù)據(jù)庫(kù)改變的所需信息。

  如果你必須恢復(fù)一些東西,嘗試首先用myisamchk -r恢復(fù)你的表。這應(yīng)該處理所有情況的99.9%。如果myisamchk失敗,嘗試下列過(guò)程:

  恢復(fù)原來(lái)的mysqldump備份

  執(zhí)行下列命令以再次運(yùn)行更新日志中的更改:

shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql


  ls被用來(lái)以正確的順序得到所有的日志文件。


  你也可以與SELECT * INTO OUTFILE 'file_name' FROM tbl_name做有選擇的備份并且用LOAD DATA INFILE 'file_name' REPLACE ...恢復(fù)。為了避免重復(fù)記錄,在表中你需要一個(gè)PRIMARY KEY或UNIQUE鍵。當(dāng)在唯一鍵值上一個(gè)新記錄與一個(gè)老記錄重復(fù)時(shí),REPLACE關(guān)鍵詞使得老記錄用一個(gè)新記錄替代。

關(guān)鍵字:MySQL、mysqldump、服務(wù)器

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專(zhuān)項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開(kāi)網(wǎng)站