首頁  >  文章  >  資料庫  >  關於MYSQL命令列模式管理的問題

關於MYSQL命令列模式管理的問題

不言
不言原創
2018-06-12 14:19:521804瀏覽

這篇文章主要介紹了關於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 中use mysql denied_MySQL

以上是關於MYSQL命令列模式管理的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn