數(shù)據(jù)庫(kù)編程過(guò)程中,這個(gè)問(wèn)題可以說(shuō)是最讓人頭疼了,因?yàn)樵斐伤脑蚩赡芎芏啵挥幸粋€(gè)個(gè)試驗(yàn)、檢查才可以排錯(cuò),可以以下面的順序進(jìn)行檢查
1.看連接地址是否正確,端口是否正確
2.看目標(biāo)host上數(shù)據(jù)庫(kù)服務(wù)是否開(kāi)啟
3.看連接字串是否正確,尤其是用戶名,密碼
如果上面的問(wèn)題都檢查過(guò)沒(méi)問(wèn)題的話,基本可以確定是數(shù)據(jù)庫(kù)權(quán)限配置問(wèn)題了,下面以mysql5.0數(shù)據(jù)庫(kù)為例說(shuō)明解決方法
在數(shù)據(jù)庫(kù)服務(wù)器上使用root賬戶登錄數(shù)據(jù)庫(kù),運(yùn)行sql語(yǔ)句
GRANT 權(quán)限 ON 數(shù)據(jù)庫(kù).表 TO '用戶'@'clienthost' IDENTIFIED BY '密碼' WITH GRANT OPTION
例如
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
這句話將所有數(shù)據(jù)庫(kù)所有表的所有權(quán)限賦予從任何客戶機(jī)登錄的root賬戶,需要密碼進(jìn)行驗(yàn)證。
建議不要使用root賬戶從遠(yuǎn)程登入,這個(gè)有可能會(huì)阻止在本地使用root賬戶,還要通過(guò)遠(yuǎn)程的方式修改root權(quán)限才能在本地使用root,可以使用下面的sql:
GRANT ALL PRIVILEGES ON somedb.* TO 'someuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
這句sql將somedb的所有表的所有權(quán)限賦予了someuser用戶,如果原來(lái)數(shù)據(jù)庫(kù)沒(méi)有someuser這個(gè)用戶,那么將以現(xiàn)在的權(quán)限配置創(chuàng)建新用戶,如果已經(jīng)有了該用戶則只是修改其權(quán)限。
至于具體權(quán)限如何分配,可以查看mysql幫助文檔。








暫無(wú)數(shù)據(jù)