討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 政府補助!學嵌入式+物聯網 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
MySQL 5.0 安裝時, 要怎麼建立最初的MySQL連線帳號?
更改我的閱讀文章字型大小
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 12:08:54
MySQL Server Instance Config Wizard

不管怎麼重設
都出現

The Security settings could not be applied.
Error Number 1045.
Access denied for user 'root@localhost' (using password: YES)

這是怎樣了?
MySQL的帳號建不出來?
根本沒辦法用啊

要命
MySQL滿久沒用了
之前都在玩MS-SQL Server
竟然把MySQL設定最初的連線帳號的方法給忘了
誰可以幫忙一下呢?
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 02:27:57
可以連了
先用MySQL Server Instance Config Wizard
先把設定都移掉
再重設
就OK了

如果用 Visual Studio 2005開發ap去連MySQL 5.0的話
用那一種方法連MySQL比較好?

A.MySql.Data.MySqlClient 1.0.7
mysql-connector-net-1.0.7-noinstall.zip

B.MySql.Data.MySqlClient 5.0.0 (Alpha)
mysql-connector-net-5.0.0-alpha-noinstall.zip

C.MyODBC 3.51.12
mysql-connector-odbc-3.51.12-win32.msi

D.MyODBC 5.0.4 (Alpha)
mysql-connector-odbc-noinstall-5.0.4-alpha-win32.zip
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 04:15:18
腦死中

測試用的MySQL的預設語系

character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1
character_set_system utf8
collation_connection latin1_swedish_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

(註: latin1 為瑞典文語系)


用 mysql-connector-net-1.0.7-noinstall 的
Samples\TableEditor\CS
去接MySQL
發生一些問題

1.Table裡的中文字串資料變成亂碼?
2.Date/Time的欄位資料, 在.Net裡轉不過去, 彈出例外

而 mysql-connector-net-5.0.0-alpha-noinstall
真不愧為Alpha版
code根本是錯的? 無法編譯成 MySql.Data.dll

涼辦了.....
= =||
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 04:22:53
>用 mysql-connector-net-1.0.7-noinstall 的
>Samples\TableEditor\CS
>去接MySQL
>發生一些問題

>1.Table裡的中文字串資料變成亂碼?
>2.Date/Time的欄位資料, 在.Net裡轉不過去, 彈出例外

private void tables_SelectedIndexChanged(object sender, System.EventArgs e)
{
data = new DataTable();

da = new MySqlDataAdapter("SELECT * FROM " + tables.SelectedItem.ToString(), conn );
cb = new MySqlCommandBuilder( da );

da.Fill( data );

dataGrid.DataSource = data;
}

在 da.Fill( data ); 這行上出現
第一個可能發生的例外狀況類型 'MySql.Data.Types.MySqlConversionException' 發生於 MySql.Data.dll
類型 'MySql.Data.Types.MySqlConversionException' 的未處理例外狀況發生於 MySql.Data.dll

其他資訊: Unable to convert MySQL date/time value to System.DateTime

作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人player註記此篇回應為很有道理 2006/9/21 下午 05:55:52
MySQL 4.1以後要注意編碼問題,
建議把資料庫的語系設定成UTF-8,
以台灣來說,作業系統是Big5語系,所以Client連線語系設定成Big5。
作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人player註記此篇回應為很有道理 2006/9/21 下午 06:00:16
mysql-connector-net-1.0.7有些Bug,在自動產生的資料對映的程式碼會對映錯誤,@_@,不知道你是不是遇到了這個。
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 07:28:57

>mysql-connector-net-1.0.7有些Bug,在自動產生的資料對映的程式碼會對映錯誤,@_@,不知道你是不是遇到了這個。

那是要自己改
\mysql-connector-net-1.0.7-noinstall\mysqlclient\Types\MySqlDateTime.cs
嗎?

是改那一個?
public DateTime GetDateTime()
{
if (! IsValidDateTime)
throw new MySqlConversionException("Unable to convert MySQL date/time value to System.DateTime");

return new DateTime( year, month, day, hour, minute, second );
}

還是?
public static explicit operator DateTime( MySqlDateTime val )
{
if (! val.IsValidDateTime) return DateTime.MinValue;
return val.GetDateTime();
}
還是?
DateTime IConvertible.ToDateTime(IFormatProvider provider)
{
return this.GetDateTime();
}

作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 07:54:27
那個是自動產生的程式碼會有錯誤的情形@@
我沒有去改他的程式碼,而是手動調整自動產生的程式碼,
有一段時間沒去碰MySQL了,忘了什麼情形是一定要去調整這個,
他是類似SqlDataType這個列舉,會對應錯誤,
我是等MySQL Connector 5.0看看能不能改正這個Bug。
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 09:11:41

>他是類似SqlDataType這個列舉,會對應錯誤,
>我是等MySQL Connector 5.0看看能不能改正這個Bug。

SqlDataType 對應錯誤喔 ?
那有得慢慢查了
要命 ==||

不知道
MySQL Connector 有沒有CVS可以挖最新的code?
MySQL網站上放的5.0的Alpha壓縮檔
還沒辦法用...
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 10:13:57

>
>>他是類似SqlDataType這個列舉,會對應錯誤,
>>我是等MySQL Connector 5.0看看能不能改正這個Bug。

剛再查了一遍
MySQL裡的一個Table裡
真的有一筆 0000-00-00 00:00:00 的時間資料
所以不是SqlDataType列舉對應錯誤
而是
年月日都是0
而使得public DateTime GetDateTime() 在轉換時的驗證沒有過


public DateTime GetDateTime()
{
if (! IsValidDateTime)
throw new MySqlConversionException("Unable to convert MySQL date/time value to System.DateTime");

return new DateTime( year, month, day, hour, minute, second );
}

public bool IsValidDateTime
{
get
{
return year != 0 && month != 0 && day != 0;
}
}
作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人player註記此篇回應為很有道理 2006/9/22 上午 10:30:37
INSERT資料到MySQL的時候,時間的格式要稍微注意一下,
'2006-01-01 00:00:00'
我記得這種字串他會知道是時間,
你可以查查其手冊,關於時間格式的部分。
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 11:30:20
字串亂碼的原因應該找出來了
Table的語系latin1
所以 text 與 varchar 的語系應該也是latin1

但是
用MySQL Query Browser 去select
卻看到很像是 utf-16 編碼的字串?
(見鬼了, 如果要用 UniCode的話, 為什麼Table的欄位的語系一開始不設成 ucs2 呢?)

要命
不知道當初寫資料到MySQL的人
是怎麼寫資料的
現在想不出來該怎麼正確取出Table內的字串了
= =||

還有在 \mysql-connector-net-1.0.7-noinstall\mysqlclient\CharSetMap.cs
private static void LoadCharsetMap()
裡頭的
mapping.Add("ucs2", "UTF-16BE");
這個是不是寫錯了?
在 .NetFramework 裡與Unicode相關的Encoding應該只有
utf-16
unicodeFFFE
utf-7
utf-8
utf-32
utf-32BE
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 01:39:35
不知道 MySQL 在下selcet時
有沒有什麼keyword 可以在不改輸出與原本在MySQL裡的資料與設定的情況下
將輸出的文字Field 自動切到 ucs2 的語系呢?
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 02:21:16
Table的語系latin1
所以欄位為 text 與 varchar 的語系應該也是latin1

因為Table裡已有資料
所以
不管是改table與欄位的語系到ucs2
還是把連線的設定多加 charset=ucs2;
還是一樣
作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人player註記此篇回應為很有道理 2006/9/22 下午 03:08:24
改變Client的語系,
SET NAMES big5;
不過,在latin1下INSERT了Big5的資料,會很難轉成正確的@@
這是之前MySQL 4.0以前的版本沒有語系,
而後來的版本有所造成的問題,
如果已經是這樣了,就很難解決。
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 03:45:28

>改變Client的語系,
>SET NAMES big5;
>不過,在latin1下INSERT了Big5的資料,會很難轉成正確的@@
>這是之前MySQL 4.0以前的版本沒有語系,
>而後來的版本有所造成的問題,
>如果已經是這樣了,就很難解決。

原本的資料
是在latin1的Table裡INSERT了Unicode (utf-16 或稱 ucs2)的字串資料
所以才要命

如果是latin1下INSERT了big5的資料的話
那還有方法可以解
就是直接改
\mysql-connector-net-1.0.7-noinstall\mysqlclient\NativeDriver.cs
把語系硬改成 big5 就好了

可是utf-16
卻不能這麼做
因為mysql-connector-net裡有不少非字串的field
是先預設成 latin1 的語系

latin1 是 SBCS
big5 是 MBCS
基本上在ACSII 0x00~0x7F 的這個區間是相容的
所以才有可能強制把語系由 latin1 硬改成 big5
作者 : phoenix(Phoenix)
[ 貼文 152 | 人氣 779 | 評價 940 | 評價/貼文 6.18 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 04:47:35
如果說還有某些連線法是可以顯示正常資料的情況的話,
就可以利用那些連線法來把資料匯出,
然後再匯入到想要轉換的語系資料庫上,
如果說Client端是Big5,資料庫是Latin1,連線設成Latin1,
就會把Big5字串不經轉碼存到資料庫中,
如果說Client端是Big5,資料庫是Latin1,連線設成Big5,
就會把Big5字串轉碼成Latin1再存入資料庫中,
所以MySQL資料庫存入的字碼會如何是看資料庫編碼和連線編碼的,
希望這個會對你有用@@
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 05:15:43

>如果說還有某些連線法是可以顯示正常資料的情況的話,

問題是
目前不管那一種連線方法
都是亂碼啊

而且
mysql-connector-net
也改太下去了
強制把VarString 或 VarChar ...etc
硬轉語系的話
mysql-connector-net 遇到原本非 utf-16 的字串
會掛掉
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/25 下午 03:36:48
mysql-connector-net
先扔掉了

目前改用MyODBC 3.51+ADO
實驗中

作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/26 上午 11:55:15
腦死中
MyODBC 3.51+ADO
用MFC寫UniCode的AP

字串還是一樣亂碼
涼辦了
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/26 下午 04:03:48
DATETIME欄位的預設值寫成
'0000-00-00 00:00:00'

天啊
這樣根本超過 VARIANT 的VT_DATE
的範圍了
連ADO都彈出例外了

頭痛
只好等看看
能不能改Table的設定了
作者 : jia62603(fay)
[ 貼文 1 | 人氣 1 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/1/9 下午 01:44:17

>腦死中
>MyODBC 3.51+ADO
>用MFC寫UniCode的AP
>
>字串還是一樣亂碼
>涼辦了
>

終於解決了亂碼的問題^o^
不曉得你解決了嗎~

我是Client端是utf8,資料庫是Latin1,
用myodbc3.51連結mysql4.0.26
在select 資料時,存中文字的那欄用16進制
ex select hex(中文姓名)
然後自已再寫程式將16進制轉成utf8
就不會有亂碼,也不會有MySql.Data.MySqlClient 的日期格式問題
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1591 | 人氣 138661 | 評價 2840 | 評價/貼文 1.79 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/1/10 下午 05:39:15
>終於解決了亂碼的問題^o^
>不曉得你解決了嗎~

我那時用改寫MyODBC的方式
把 VARCHAR....etc
在MyODBC裡強制轉型成具有Binary的屬性
這樣我在 C++ -> ADO -> MyODBC-> MySQL 時
ADO就不會再做多餘的UniCode轉碼
同時配合OpenSource網站提供的ADO的C++ 封裝class 進行必要改寫
(因為字串經由ADO出來的資料型態由原本的BSTR 改成 UINT8+ARRAY)

不過那份工作
做不滿一個月被踢走
算了

MySql.Data.MySqlClient
這個我當初實驗不出來解決方法
不過還是謝了你說的方法
作者 : na1124(奈許)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/11/16 下午 03:32:42
第一個可能發生的例外狀況類型 'MySql.Data.Types.MySqlConversionException' 發生於 MySql.Data.dll
類型 'MySql.Data.Types.MySqlConversionException' 的未處理例外狀況發生於 MySql.Data.dll

這問題出自於你的資料庫的資料表.你的資料表裡的內容,欄位不可null;但也無預設值.
總而言之,是你資料庫裡的資料表出了問題.
回去檢查,應該會有成果.
 板主 : 麗達
 > mySQL - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - mySQL - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
mySQL
1 麗達 1240 
2 jabawork 400 
3 小朱 220 
4 Phoenix 200 
5 ench 140 
6 Aery 100 
7 ozzy 90 
8 jonathan321 90 
9 Aries 70 
10 Jasper 60 
mySQL
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125