主頁(yè) > 教育培訓(xùn) > 電腦培訓(xùn) > mysql學(xué)習(xí)中常見(jiàn)問(wèn)題集錦解答技巧(2)

mysql學(xué)習(xí)中常見(jiàn)問(wèn)題集錦解答技巧(2)

  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è)客戶連接了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客戶mysql。這個(gè)錯(cuò)誤的原因很簡(jiǎn)單,客戶沒(méi)有足夠的內(nèi)存存儲(chǔ)全部結(jié)果。

  首先檢查你的查詢是否正確

  Packet too large錯(cuò)誤

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

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

  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)用客戶函數(shù)!

  Ignoring user錯(cuò)誤

  Found wrong password for user: 'some_user@some_host'">_user@some_host'">'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用戶的口令,可以使用如下方法恢復(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用戶或運(yùn)行服務(wù)器的相同用戶做這個(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'。

  改變一張表中列的順序

免責(zé)聲明:該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請(qǐng)發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。返回查查吧首頁(yè),查看更多>>
提示

該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請(qǐng)發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

優(yōu)惠商城

更多