3d全彩无码啪啪本子全彩,全部免费毛片在线播放 http://www.330518.com/news 提供虛擬主機幫助信息 Mon, 30 Oct 2023 02:58:59 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.1.41 mysql query error DZ程序出現(xiàn)mysql query error解決方法 http://www.330518.com/news/?p=1496 http://www.330518.com/news/?p=1496#comments Mon, 11 Dec 2017 06:06:29 +0000 http://www.330518.com/news/?p=1496 mysql query error翻譯成中文的意思是:MySQL查詢錯誤

最直接簡單的方法是:

到數(shù)據(jù)庫高級管理,也就是PHPMYADMIN里面,全選數(shù)據(jù)庫點擊修復即可,如果你不知道數(shù)據(jù)庫怎么進或者PHPMYADMIN怎么進,聯(lián)系你的空間商或者懂的朋友,讓他幫你修復即可解決。

 

今天discuz論壇出現(xiàn)問題,如下:

Discuz! info: MySQL Query Error

Time: 2009-9-14 4:30pm
Script: /bbs/index.php

SQL: SELECT t.*, f.name FROM [Table]threads t, [Table]forums f WHERE t.fid<>'0' AND f.fid=t.fid AND f.fid not in (125) AND t.displayorder not in (-1,-2) ORDER BY t.dateline DESC LIMIT 0, 10
Error: Error writing file '/tmp/MYAmg92O' (Errcode: 28)
Errno.: 3

http://faq.comsenz.com 搜索此錯誤的解決方案

按照個人經(jīng)驗,這是第一次遇到的問題,應該跟臨時目錄tmp有關(guān)。

操起g.cn開始搜索,得出理論性結(jié)果如下:

  1. 該問題也會發(fā)生在windows服務器上(C:\WINDOWS\TEMP\MY32),亦是跟臨時目錄有關(guān)
  2. 該問題跟論壇采用“首頁四格”插件有關(guān)

解決方法如下:

  1. 采用phpmyadmin對出問題的表進行repair(修復),獨立主機亦可用mysql工具修復
  2. 采用discuz tools進行數(shù)據(jù)庫修復(鏈接:TOOLS 2009賀歲版)

而實際操作中,我先采用了重啟服務器(自有vps服務器,linux系統(tǒng)),系統(tǒng)啟動完成后依次啟動php-cgi、nginx、mysql,重新打開論壇,一切正常。過了2個小時,論壇又出現(xiàn)那個問題,從問題上看是寫入數(shù)據(jù)出錯。檢查臨時目錄權(quán)限,一切正常。不經(jīng)意間想起這個vps只有5G空間,linux系統(tǒng)占用1.5G,該論壇圖片甚多,莫非……

鍵入如下命令:

[root@centos www]# df -m
Filesystem?????????? 1M-blocks????? Used Available Use% Mounted on
/dev/sda1???????????????? 5040????? 4784???????? 0 100% /

看來是服務器空間被吃完了!馬上刪除一些沒用的數(shù)據(jù),估計是這幾天論壇圖片又傳了好多,導致空間吃緊了!下一步就要去升級該vps了!硬件問題,這也實在不是我能解決的了!

而網(wǎng)上搜索來的答案中也并非沒有用,比如修復表的操作,看到得出錯是某個表出現(xiàn)問題提示需要修復,如下:

Error: Table '.\discuz\[Table]threads' is marked as crashed and should be repaired

而經(jīng)過phpmyadmin無法修復的話,可以考慮上傳discuz官方的tools進行修復試試看。當然,一切操作記得盡可能做個備份,以防萬一!

可以看到,問題出在connect函數(shù),即連接問題。

出現(xiàn)數(shù)據(jù)庫連接問題,一般是這幾種情況:

  1. 數(shù)據(jù)庫服務沒有起來
  2. 數(shù)據(jù)庫配置沒有配置正確

檢查數(shù)據(jù)庫服務狀態(tài)

直接執(zhí)行service mysql status可以看到mysql服務的運行狀態(tài),如果看到下面的結(jié)果,說明數(shù)據(jù)庫沒有起來,請手動重啟數(shù)據(jù)庫。

曾經(jīng)出現(xiàn)過某些同學,不小心將/etc/hostslocalhost解析到127.0.0.1的那行刪掉了,而config.inc.phphost的配置是localhost,導致php鏈接數(shù)據(jù)庫的時候,無法解析localhost,導致連接失敗。大家也可以看看

解決辦法:
如果您的服務器是獨立主機強烈建議使用命令行方式進行修復:
修復前將mysql服務停止。
如果是Win主機,打開命令行方式,然后進入到mysql的/bin目錄。
執(zhí)行myisamchk -r d:\mysql\data\discuz\*.MYI
其中d:\mysql\data\discuz\換成您的數(shù)據(jù)庫所在路徑。
如果是類Unix主機,直接使用myisamchk -r 數(shù)據(jù)庫目錄\*.MYI
即可。

大概說一下檢查的方法
檢查語法錯誤,可以用echo輸出變量,看看你要插入的數(shù)據(jù)是否出現(xiàn)問題
用mysql_error檢查sql語句執(zhí)行錯誤,echo出來
檢查數(shù)據(jù)庫建立的是否正確,是否和插入語句一一對應,NOT NULL部分要注意
檢驗mysql_query($sql,$conn);的返回值,echo出來,看看是否正常

如果以上方法都找不出來,還有可能是
你電腦里裝了多個mysql,端口改過嗎(比如你之前學習mysql,安裝了一個,后來又安裝一個wamp學php,那這兩個端口可能會沖突,檢查一下,在配置文件my.ini里Ctrl+F查找3306或者port,把端口全改掉,這個時候你的php的配置文件php.ini里還有一個默認訪問端口mysql.default_port = 3306,也改掉)

真的沒有成功嗎?一般mysql數(shù)據(jù)庫操作是用mysql_affected_rows()來檢測操作是否成功把。

如果確定數(shù)據(jù)庫中沒有這條數(shù)據(jù),在mysql里直接操作沒問題說明表名和列名沒問題,但庫名確定沒弄錯嗎?
字符編碼不對,插入數(shù)據(jù)應該只會是亂碼,也不會插不進去。
數(shù)據(jù)沒重復吧= =

真的沒有成功嗎?一般mysql數(shù)據(jù)庫操作是用mysql_affected_rows()來檢測操作是否成功把。

如果確定數(shù)據(jù)庫中沒有這條數(shù)據(jù),在mysql里直接操作沒問題說明表名和列名沒問題,但庫名確定沒弄錯嗎?
字符編碼不對,插入數(shù)據(jù)應該只會是亂碼,也不會插不進去。
數(shù)據(jù)沒重復吧= =

檢查一下問題:
1,你的數(shù)據(jù)庫建立了嗎?表建立了嗎?
2,表字段與插入數(shù)據(jù)相符嗎?
3,字段類型和插入數(shù)據(jù)的類型一致嗎?
4,sql語句規(guī)范嗎?
個人覺得3和4的可能性是比較大的,regdate如果也是字符串類型的話,你的new()就必須加單引號了。這里沒有看到你建立的數(shù)據(jù)表的數(shù)據(jù)。單純只是一個插入失敗,反而看不到問題所在,“插入失敗”過于籠統(tǒng)。

我在“UTF8字符集的表怎么直接轉(zhuǎn)UTF8MB4”一文中介紹了如何把表字符集由UTF8直接轉(zhuǎn)換成UTF8MB4的幾種方法。

1、只修改字符集(使用默認校驗集)

yejr@imysql.com> alter table t1 convert to character set utf8mb4

2、同時修改表字符集和校驗集

yejr@imysql.com> alter table t1 convert to character set utf8mb4 collate utf8mb4_bin;

3、只修改某列的字符集

yejr@imysql.com> alter table t1 modify c1 varchar(20) character set utf8mb4 not null default ‘’

4、同時修改某列的字符集和校驗集

yejr@imysql.com> alter table t1 modify c1 varchar(20) character set utf8mb4 collate utf8mb4_unicode_ci not null default ‘’

好了,有個字符集為UTF8MB4的表中想存儲各類不同字符集的文本,有哪些注意事項億避免亂碼?

如果是通過WEB接口存儲數(shù)據(jù),則建議在browser端、server端全都采用UTF8字符集,MySQL Server端采用UTF8/UTF8MB4均可(針對大多數(shù)文本,其實UTF8字符集就足夠存儲的了)。

]]>
http://www.330518.com/news/?feed=rss2&p=1496 0