mysql權限管理與基本處理

  做爲php裏最經常使用的數據庫mysql,除掉最經常使用的mysql語句外,mysql的一些管理也是須要了解的。
   Linux裏登陸mysql:
   mysql -h IP -uroot -p
   enter後 會提示輸入密碼。
   一個比較常見遇到的問題是(忘記了root密碼),解決方案:
   找到my.cnf(mysql的配置文件,在windows裏是my.ini)  
   Linux的默認目錄是 /etc/mysql
   在mysqld里加上一句
   skip-grant-tables
   保存退出  service mysql restart   數據庫服務重啓。
   而後mysql登陸的時候,能夠不須要密碼。對數據庫進行從新設置
    UPDATE user SET Password = password ('new-password’) WHERE User = ‘root’
    這樣就更改了root的新密碼。
    而後flush privileges ; (必定要刷新權限,不然是不會生效的)。
    而後service  mysql restart
    這樣就完成了不知道數據庫密碼的狀況下,對密碼的更改。

    擁有了數據庫根目錄權限後,在大多數的使用場景裏面,咱們須要管理一個數據庫服務器,可是每一個項目僅僅是使用了一個或者倆個數據庫,並且爲了保證數據庫總體的安全,並不提倡給每一個項目都是根目錄權限。通常的應用場景是,給某個項目指定特定鏈接的數據庫和操做權限(有的用戶只能有查看權限,而有的用戶擁有所有的權限) 新增長數據庫的權限語句,能夠精確到具體的數據表權限操做
    GRANT ALL PRIVILEGES ON  test.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' ;  
    給數據庫賬號增長了權限後,要讓受權用戶當即生效,必須加上下面的
    FLUSH   PRIVILEGES;(讓賦予了權限的賬號生效)
    這樣就完成了數據庫系統的單獨數據庫的分權(all privileges能夠換成對應的select  insert  update delete等操做)

    遠程權限登陸:
     GRANT ALL PRIVILEGES ON  test.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' ;  這樣就講限定從192.168.1.3拓展到任意遠程主機能夠進行登陸了。爲了安全,通常用localhost(只容許使用數據庫)。
     給某個用戶賦予不一樣的權限
     grant select,insert,update,delete,drop,create on wifijunData.* to hafu@"%" identified by "test01%"php

相關文章
相關標籤/搜索