Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計(jì)

          留言簿(23)

          積分與排名

          優(yōu)秀學(xué)習(xí)網(wǎng)站

          友情連接

          閱讀排行榜

          評(píng)論排行榜

          linux的mysql權(quán)限錯(cuò)誤導(dǎo)致看不到mysql數(shù)據(jù)庫(kù)

          今天早上收到朋友的信息說他家的數(shù)據(jù)庫(kù)被人干了,很是緊張,但是后面逐步排除,發(fā)現(xiàn)mysql安裝目錄下的數(shù)據(jù)文件都是正常,從linux歷史執(zhí)行命令日志來看也沒有跡象表面是被人搞,同時(shí)mysql的錯(cuò)誤log里面只有些不穩(wěn)定的日志。最后搜索到兩篇這樣的文章,確定的確是權(quán)限這個(gè)問題導(dǎo)致的,但是為什么服務(wù)突然會(huì)有這種現(xiàn)象,目前還是查看中,同時(shí)整理下這兩篇文章,希望能夠幫到其他人。

          參考的原文:

          http://www.yebihai.com/kuangjiaxitong/linux/801.html
          http://www.unixdo.com/DataBase/1909.html

          [root@localhost ~]# mysql -uroot -p123

            Welcome 
          to the MySQL monitor. Commands end with ; or \g.

            Your MySQL connection id 
          is 7

            Server version: 
          5.0.77 Source distribution

            Type 
          'help;' or '\h' for help. Type '\c' to clear the buffer.

            mysql
          >show databases;

            
          +--------------------+

            
          | Database |

            
          +--------------------+

            
          | information_schema |

            
          | test |

            
          +--------------------+

            只顯示這個(gè)兩個(gè)數(shù)據(jù)庫(kù),看不到mysql數(shù)據(jù)庫(kù)

            解決方法:

            此問題實(shí)際上是用戶沒有權(quán)限:

            
          1. 關(guān)閉mysql,service mysqld stop

            
          2. 啟動(dòng)mysql: mysqld_safe --skip-grant-tables

            
          3. 再打開一個(gè)ssh連接服務(wù)器,進(jìn)行mysql操作

            
          [root@localhost ~]#mysql

            Welcome 
          to the MySQL monitor. Commands end with ; or \g.

            Your MySQL connection id 
          is 7

            Server version: 
          5.0.77 Source distribution

            Type 
          'help;' or '\h' for help. Type '\c' to clear the buffer.

            mysql
          >show databases;

            在這個(gè)模式下是可以看到mysql數(shù)據(jù)庫(kù)的。

            在數(shù)據(jù)庫(kù)名mysql下的user表中,修改相應(yīng)權(quán)限,比如:

            
          INSERT INTO `userVALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

            如果已經(jīng)存在了host為localhost的記錄,則先刪除該記錄,
          delete from user where host='localhost';

            然后再進(jìn)行INSERT 
          INTO `userVALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

            操作。

            操作完成后,將兩個(gè)ssh連接都關(guān)閉,然后再重新連接一個(gè)ssh,啟動(dòng)mysql,service mysqld start,然后用mysql命令連接mysql數(shù)據(jù)庫(kù)

            
          [root@localhost ~]#mysql -uroot -p

            密碼為空。

            
          [如果此時(shí)還連接不上,再重啟一下mysql就好了,service mysqld restart]

            然后就可以用 
          [root@localhost ~]#mysqladmin -uroot password 'newpassword' 來設(shè)置密碼了。



          第二種情況

          1.首先停止mysql服務(wù):service mysqld stop
          2.加參數(shù)啟動(dòng)mysql:/usr/bin/mysqld_safe --skip-grant-tables & 
          然后就可以無任何限制的訪問mysql了
          3.root用戶登陸系統(tǒng):mysql -u root -p mysql
          4.切換數(shù)據(jù)庫(kù):use mysql
          5.顯示所有的表:show tables;
          這里就可以訪問表了
          6.查看user表中root用戶的localhost權(quán)限:select * from user where user='root' and host='localhost'
          7.在顯示的列表中顯示:root用戶的localhost的權(quán)限都是'N',表示root用戶本地登陸不具有權(quán)限
          8.修改root用戶的localhost權(quán)限:
            
          update user set  
            `Select_priv` 
          = 'Y',
            `Insert_priv` 
          = 'Y',
            `Update_priv` 
          = 'Y',
            `Delete_priv` 
          = 'Y',
            `Create_priv` 
          = 'Y',
            `Drop_priv` 
          = 'Y',
            `Reload_priv` 
          = 'Y',
            `Shutdown_priv` 
          = 'Y',
            `Process_priv` 
          = 'Y',
            `File_priv` 
          = 'Y',
            `Grant_priv` 
          = 'Y',
            `References_priv` 
          = 'Y',
            `Index_priv` 
          = 'Y',
            `Alter_priv` 
          = 'Y',
            `Show_db_priv` 
          = 'Y',
            `Super_priv` 
          = 'Y',
            `Create_tmp_table_priv` 
          = 'Y',
            `Lock_tables_priv` 
          = 'Y',
            `Execute_priv` 
          = 'Y',
            `Repl_slave_priv` 
          = 'Y',
            `Repl_client_priv` 
          = 'Y',
            `Create_view_priv` 
          = 'Y',
            `Show_view_priv` 
          = 'Y',
            `Create_routine_priv` 
          = 'Y',
            `Alter_routine_priv` 
          = 'Y',
            `Create_user_priv` 
          = 'Y',
            `Event_priv` 
          = 'Y',
            `Trigger_priv` 
          = 'Y'
            
          where user='root' and host='localhost'        //這里需注意是否有這個(gè)條件的用戶
            9.更新一下:flush privileges;
            10.然后重新啟動(dòng)下mysql,可以解決問題了




           

          posted on 2015-03-22 12:24 都市淘沙者 閱讀(7616) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 高州市| 庐江县| 宁晋县| 韶关市| 苍山县| 郁南县| 虎林市| 台中市| 象山县| 绥阳县| 黄大仙区| 南岸区| 镇安县| 图木舒克市| 綦江县| 海口市| 汶川县| 鹤峰县| 长乐市| 伊川县| 泰宁县| 子洲县| 河西区| 惠州市| 丰县| 广宁县| 黑山县| 西城区| 通许县| 米泉市| 湘潭县| 班玛县| 温州市| 石泉县| 临江市| 陆丰市| 会同县| 班玛县| 泸西县| 呼图壁县| 奉化市|