這篇文章主要介紹了關於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 usage on *.* to NewUserName@HostName usage on *.1. ,insert,update on mydb.* to NewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to NewUserName@HostName identified on mydb.TestTable to NewUserName@HostName identified on mydb.TestTable to NewUserName@HostName identified對應物件上的權限的管理能力,可在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';
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上是關於MYSQL命令列模式管理的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!