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

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計

          留言簿(23)

          積分與排名

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

          友情連接

          閱讀排行榜

          評論排行榜

          2015年3月22日 #

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

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

          參考的原文:

          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 |

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

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

            解決方法:

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

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

            
          2. 啟動mysql: mysqld_safe --skip-grant-tables

            
          3. 再打開一個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;

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

            在數(shù)據(jù)庫名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);

            操作。

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

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

            密碼為空。

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

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



          第二種情況

          1.首先停止mysql服務(wù):service mysqld stop
          2.加參數(shù)啟動mysql:/usr/bin/mysqld_safe --skip-grant-tables & 
          然后就可以無任何限制的訪問mysql了
          3.root用戶登陸系統(tǒng):mysql -u root -p mysql
          4.切換數(shù)據(jù)庫: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'        //這里需注意是否有這個條件的用戶
            9.更新一下:flush privileges;
            10.然后重新啟動下mysql,可以解決問題了




           

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

          主站蜘蛛池模板: 宜都市| 浪卡子县| 稷山县| 峨眉山市| 桂林市| 洛隆县| 乌兰浩特市| 锡林郭勒盟| 桃江县| 天津市| 密山市| 札达县| 咸阳市| 邢台县| 无锡市| 政和县| 洪泽县| 滨海县| 永定县| 庆元县| 孙吴县| 涞水县| 建水县| 林州市| 文登市| 武平县| 西吉县| 长武县| 黄冈市| 如皋市| 奉节县| 青浦区| 奇台县| 桐柏县| 岐山县| 科技| 金溪县| 德阳市| 若尔盖县| 湘西| 马边|