《Mysql實例MYSQL命令行模式管理MySql的一點心得》要點:
本文介紹了Mysql實例MYSQL命令行模式管理MySql的一點心得,希望對您有用。如果有疑問,可以聯系我們。
MySql數據庫是中小型網站后臺數據庫的首選,因為它對非商業應用是免費的.網站開發者可以搭建一個"Linux+Apache+
PHP+MySql"平臺,這是一個最省錢的高效平臺.在使用MySql進行開發時,MySql自帶的文檔對于新手來說是份很好的參考資料.本文是我在使用MySql中的小小心得.
當前一般用戶的開發環境多是Windows或Linux,用戶可以到http://www.codepub.com/software/index.html下載相關版本進行安裝,在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操作.
下面給出本人從其它資料(www.cn-java.com)獲得的對常用權限的解釋:
全局管理權限:?
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.
以上只是對新手的簡單練習,要成為一個數據庫好手,當以孜孜不倦地追求知識,不斷地思考、嘗試、再思考.
...............................
MySql常用命令總結??
這兩天搞個網站,又用到MySql,可是命令卻一個都想不起來,所以,趁這次機會,把這些整理一下,權當作筆記吧,以便自己以后查閱!?
1:使用SHOW語句找出在服務器上當前存在什么數據庫:??
??mysql>?SHOW?DATABASES;??
2:2、創建一個數據庫MYSQLDATA?
??mysql>?Create?DATABASE?MYSQLDATA;??
3:選擇你所創建的數據庫??
??mysql>?USE?MYSQLDATA;?(按回車鍵出現Database?changed?時說明操作成功!)?
4:查看現在的數據庫中存在什么表??
??mysql>?SHOW?TABLES;?
5:創建一個數據庫表?
??mysql>?Create?TABLE?MYTABLE?(name?VARCHAR(20),?sex?CHAR(1));?
6:顯示表的結構:??
??mysql>?DESCRIBE?MYTABLE;??
7:往表中加入記錄??
??mysql>?insert?into?MYTABLE?values?("hyq","M");??
8:用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)?
??mysql>?LOAD?DATA?LOCAL?INFILE?"D:/mysql.txt"?INTO?TABLE?MYTABLE;?
9:導入.sql文件命令(例如D:/mysql.sql)?
??mysql>use?database;?
??mysql>source?d:/mysql.sql;??
10:刪除表?
??mysql>drop?TABLE?MYTABLE;??
11:清空表?
??mysql>delete?from?MYTABLE;?
12:更新表中數據?
??mysql>update?MYTABLE?set?sex="f"?where?name='hyq';?
《Mysql實例MYSQL命令行模式管理MySql的一點心得》是否對您有啟發,歡迎查看更多與《Mysql實例MYSQL命令行模式管理MySql的一點心得》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/11294.html