管理MySql一些竅門

aqiandao發表於2016-10-21


  當前一般使用者的開發環境多是Windows或Linux,使用者可以到下載相關版本進行安裝,在 windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。

  MySQL資料庫是中小型網站後臺資料庫的首選,因為它對非商業應用是免費的.網站開發者可以搭建一個"Linux+Apache+PHP+MySql" 平臺,這是一個最省錢的高效平臺.在使用MySql進行開發時,MySql自帶的文件對於新手來說是份很好的參考資料.本文是我在使用MySql中的小小心得。

  當前一般使用者的開發環境多是Windows或Linux,使用者可以到下載相關版本進行安裝,在 windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動者應具有管理員許可權。

  剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性儘可能提高,在這裡應把匿名帳戶刪除、 root帳戶設定密碼,可用如下命令進行:

  use mysql;

  delete from User where User="";

  update User set Password=PASSWORD('newpassword') where User='root';

  如果要對使用者所用的登入終端進行限制,可以更新User表中相應使用者的Host欄位,在進行了以上更改後應重新啟動資料庫服務,此時登入時可用如下類似命令:

  mysql -uroot -p;

  mysql -uroot -pnewpassword;

  mysql mydb -uroot -p;

  mysql mydb -uroot -pnewpassword;

  上面命令引數是常用引數的一部分,詳細情況可參考文件。此處的mydb是要登入的資料庫的名稱。

  在進行開發和實際應用中,使用者不應該只用root使用者進行連線資料庫,雖然使用root使用者進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的使用者賦予最恰當的資料庫許可權。如一個只進行資料插入的使用者不應賦予其刪除資料的許可權。MySql的使用者管理是透過 User表來實現的,新增新使用者常用的方法有兩個,一是在User表插入相應的資料行,同時設定相應的許可權;二是透過GRANT命令建立具有某種許可權的使用者。其中GRANT的常用用法如下:

  grant all on mydb.* to NewUserName@HostName identified by "password" ;

  grant usage on *.* to NewUserName@HostName identified by "password";

  grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";

  grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";

  若要給此使用者賦予他在相應物件上的許可權的管理能力,可在GRANT後面新增WITH GRANT OPTION選項。而對於用插入User表新增的使用者,Password欄位應用PASSWORD 函式進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的使用者應給予清除,許可權過界的使用者應及時回收許可權,回收許可權可以透過更新User表相應欄位,也可以使用REVOKE操作。

  下面給出本人從其它資料()獲得的對常用許可權的解釋:

  全域性管理許可權:

  file: 在MySQL伺服器上讀寫檔案。

  PROCESS: 顯示或殺死屬於其它使用者的服務執行緒。

  RELOAD: 過載訪問控制表,重新整理日誌等。

  SHUTDOWN: 關閉MySQL服務。

  資料庫/資料表/資料列許可權:

  ALTER: 修改已存在的資料表(例如增加/刪除列)和索引。

  CREATE: 建立新的資料庫或資料表。

  DELETE: 刪除表的記錄。

  DROP: 刪除資料表或資料庫。

  INDEX: 建立或刪除索引。

  INSERT: 增加表的記錄。

  SELECT: 顯示/搜尋表的記錄。

  UPDATE: 修改表中已存在的記錄。

  特別的許可權:

  ALL: 允許做任何事(和root一樣)。

  USAGE: 只允許登入--其它什麼也不允許做。

  最後給出本人在RedHat9.0下的MySql操作演示:

  選用資料庫的root使用者登入

  [weiwen@weiwenlinux]$mysql -uroot -p

  Enter password:MyPassword

  mysql>create database mydb;

  Query OK, 1 row affected (0.02 sec)

  mysql>use mydb;

  Database changed

  mysql>create table TestTable(Id int aut_increment primary key,

  UserName varchar(16) not null,

  Address varchar(255));

  Query OK, 0 rows affected (0.02 sec)

  mysql>grant all on mydb.* to test@localhost identified by "test";

  Query OK, 0 rows affected (0.01 sec)

  mysql>quit

  Bye

  [weiwen@weiwenlinux]$mysql mydb -utest -ptest

  其中test.sql是用vi編輯好的SQL指令碼,其內容為:

  Insert into TestTable(UserName,Address)values('Tom','shanghai');

  Insert into TestTable(UserName,Address)values('John','beijing');

  select * from TestTable;

  執行已經編輯好的SQL指令碼可以用source filename 或 . filename。

  以上只是對新手的簡單練習,要成為一個資料庫好手,當以孜孜不倦地追求知識,不斷地思考、嘗試、再思考。

  http://blog.chinaunix.net/uid-30065054-id-5753658.html

  http://blog.itpub.net/30065054/viewspace-2126796/

  http://blog.csdn.net/sinat_36394053/article/details/52870196

  http://aqiandao.iteye.com/admin/blogs/2331788

  http://run.gmw.cn/blog-1873077-177779.html

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30065054/viewspace-2126871/,如需轉載,請註明出處,否則將追究法律責任。

相關文章