Linux下MySQL無法訪問問題排查的基本步驟

?

問題說明


本文說明云服務(wù)器 ECS LinuxLinux 無法訪問問題的一般排查步驟。

處理辦法


  1. 查看 Linux 操作系統(tǒng)是否已經(jīng)Linux了 MySQL

    $?rpm?-qa?mysql  mysql-4.1.7-4.RHEL4.1    #?說明已經(jīng)安裝了?MySQL
  2. 檢查Linux
    檢測 MySQL?運(yùn)行狀態(tài):

    service?mysqld?status
  3. 啟動服務(wù):
    可以用三種方法來啟動 MySQL:

    1. 方法一:使用?service?命令啟動?MySQL:

      service?mysqld?start
    2. 方法二:使用 mysqld 腳本來啟動 MySQL:

      /etc/init.d/mysql?start
    3. 方法三:使用?safe_mysqld?實用程序啟動?MySQL?服務(wù),此方法可以使用相關(guān)參數(shù):

      safe_mysqld&?//使用&表示將safe_mysqld放在后臺執(zhí)行。
  4. 登陸

  5. 修改密碼

    mysqladmin?-u?root?password  mysqladmin?-u?root?password?'kaishi'

    這里的“密碼”為我們欲新設(shè)的密碼。系統(tǒng)會提示我們輸入舊密碼(若是 MySQL 剛安裝,則默認(rèn)密碼為空)

?

如果本機(jī)可以登陸了,但是其他機(jī)器的客戶端登陸報錯。比如:

ERROR?1130?(00000):?Host?'xxx.xxx.xxx.xxx'?is?not?allowed?to?connect?to?this?MySQ  L?server

則首先查看了 iptables 的設(shè)置,確認(rèn)開放了 3306 端口:

iptables?-A?INPUT?-p?tcp?-m?tcp?--sport?3306?-j?ACCEPT  iptables?-A?OUTPUT?-p?tcp?-m?tcp?--dport?3306?-j?ACCEPT  service?iptables?save

?

如果還是無法訪問,則可能是 MySQL 的權(quán)限問題。則可以通過如下步驟排查:

  1. 在本機(jī)登錄

    mysql?-h?localhost?-u?root?-pkaishi  show?databases;  use?mysql;  select?Host,?User,?Password?from?user;  +-----------------------+------+-------------------------------------------+  |?Host?|?User?|?Password?|  +-----------------------+------+-------------------------------------------+  |?localhost?|?root?|?*18F54215F48E644FC4E0F05EC2D39F88D7244B1A?|  |?localhost.localdomain?|?root?|?|  |?localhost.localdomain?|?|?|  |?localhost?|?|?|  +-----------------------+------+-------------------------------------------+

    可以看到如上結(jié)果,只有 localhost 才設(shè)置了訪問的權(quán)限。

  2. 進(jìn)入?MySQL?,創(chuàng)建一個新用戶?user?:
    格式:grant 權(quán)限 on 數(shù)據(jù)庫名.表名 用戶@登錄主機(jī) identLinuxied by “用戶密碼”。

    grant?select,update,insert,delete?on?easyview.*?to?sillycat@192.168.10.103?identified?by?"kaishi";
  3. 查看結(jié)果,執(zhí)行:

    use?mysql;  select?host,user,password?from?user;

    可以看到在user表中已有剛才創(chuàng)建的user用戶。host字段表示登錄的主機(jī),其值可以用IP,也可用主機(jī)名,將host字段的值改為%就表示在任何客戶端機(jī)器上能以userLinux到mysql服務(wù)器,建議在開發(fā)時設(shè)為%。

  4. 修改了權(quán)限后需要執(zhí)行如下語句生效:

    update?user?set?host?=?'%'?where?user?=?'sillycat';  flush?privileges;

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享