MySQL連線時出現問題的疑難解答

2021-08-04 03:53:41 字數 3999 閱讀 2557

如果在嘗試連線到mysql伺服器時遇到問題,以下內容將描述您可以採取的一些糾正問題的方法。

如果mysql -u root工作,但導致(

本地主機的實際主機名稱

在** 

),您的主機在

表中可能沒有正確的名稱

。乙個常見的問題是

錶行中的

值 指定了不合格的主機名,但系統的名稱解析例程返回完全限定的網域名稱(反之亦然)。

例如,如果您

在 表中

有主機行

,但是dns告訴mysql您的主機名是

該行不起作用。

嘗試向包含主機ip位址的表

新增一行 

作為列值。 

mysql -h your_hostname-u root

access denied

your_hostnameuserhostuser'pluto'user'pluto.example.com'userhostuserhost'pluto.%'host%如果

工作,但是 

沒有,您沒有授予對給定使用者訪問名為的資料庫

mysql -u user_name

mysql -u user_namesome_db

some_db如果

在伺服器主機上

執行時工作

,但在遠端客戶端主機上執行時不起作用,則尚未啟用從遠端主機訪問給定使用者名稱的伺服器。 

mysql -uuser_name

mysql -h host_name-uuser_name

如果您無法弄清楚原因access denied,請從user表中

刪除host包含萬用字元(包含'%''_'字元的行)的

值的所有行

。乙個非常常見的錯誤是用

host='%'anduser

插入乙個新行 

,認為這樣可以指定 

從同一臺機器進行連線。

這不行的原因是預設許可權包括帶有

= 和 

= 的行 

。因為該行的

值 比以前更具體 

,當連線起來時,它優先於新行!

正確的步驟是插入乙個第二行與 

= 和 

= ,或刪除的行 

= 和 = 。

刪除該行後,請記住發出乙個 

另見第6.2.4節「訪問控制,階段1:連線驗證」。另見

第6.2.4節「訪問控制,階段1:連線驗證」。另見

第6.2.4節「訪問控制,階段1:連線驗證」

'some_user'

localhosthost'localhost'user''host'localhost''%'localhosthost'localhost'user'some_user'

host'localhost'user''

flush privileges

如果您能夠連線到mysql伺服器,但是access denied每當您發出

select ... into outfile或 

load data infile宣告

時都會收到一條 

訊息 ,

user表中的

行將 不

file啟用

該 許可權。

如果直接更改授權表(例如,使用 

insert,, 

update或 

delete語句),並且您的更改似乎被忽略,請記住必須執行 

flush privileges語句或

mysqladmin flush-privileges

否則,您的更改在下次重新啟動伺服器之前無效。

請記住,在

root使用

update語句

更改密碼

後,在重新整理許可權之前不需要指定新密碼,因為伺服器不知道您已經更改了密碼!

如果您的許可權在會話中似乎已經發生變化,那麼mysql管理員可能會更改它們。

第6.2.6節「許可權更改生效時」所示。

如果您有訪問perl,php,python或odbc程式的問題,請嘗試使用

或連線到伺服器

。如果您能夠使用

mysql

客戶端進行連線

,問題在於您的程式,而不是訪問許可權。

(有之間沒有空格

和密碼;您還可以使用 

語法來指定密碼。如果您使用。 

或 選擇不使用密碼的值時,mysql提示你輸入密碼。) 

mysql -u user_namedb_name

mysql -u user_name-pyour_passdb_name

-p

--password=your_pass

-p

--password

出於測試目的,請

使用該選項

啟動mysqld

伺服器 

--skip-grant-tables

然後,您可以更改mysql授權表,並使用該 

show grants語句來檢查您的修改是否具有所需的效果。

當您對更改感到滿意時,請執行

mysqladmin flush-privileges

來告知 

mysqld

這樣可以在不停止和重新啟動伺服器的情況下開始使用新的授權表內容。

如果一切都失敗,請

使用除錯選項

啟動mysqld

伺服器(例如 

--debug=d,general,query)。

這將列印有關嘗試連線的主機和使用者資訊,以及有關每個發出的命令的資訊。

請參見 

第28.5.3節「dbug軟體包」。

如果您的mysql授權表有任何其他問題,並且感覺您必須將問題發布到郵件列表中,請始終提供mysql授權表的轉儲。

您可以使用

mysqldump mysql

命令轉儲表

。要提交錯誤報告,請參閱 

第1.7節「如何報告錯誤或問題」中的說明

。在某些情況下,你可能需要重新啟動

mysqld的

--skip-grant-tables執行 

的mysqldump。

網路連線出現問題

1月16日 午飯後,人事主管說自己的電腦上不了網了,同事修了很久沒有解決。該我這個幹最髒最累的活的人出面了。先是花了很長時間確認是網路埠,網線,還是網絡卡,或者電腦介面哪一部分壞了。最終確認是電腦的問題,但是網絡卡顯示工作正常。真的是沒轍了。後來去更新了realtek rtl8139 family ...

安裝mysql時出現問題的解決辦法

問題一 在安裝 重灌時出現could not start the service mysql error 0 原因 解除安裝mysql時並沒有完全刪除相關檔案和服務,需要手動清除。安裝到最後一步execute時不能啟動服務的解決方法 首先,在管理工具 服務裡面將mysql的服務給停止 有的是沒有安裝...

MySQL修改密碼出現問題

mysql新的修改密碼的命令 alter user root localhost identified with mysql native password by 新密碼 具體原因是mysql 8.04前,執行1,2都可以 1,set password password 修改的密碼 2,update...