溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MYSQL命令行模式管理的問題分析

發(fā)布時間:2021-02-26 14:07:35 來源:億速云 閱讀:162 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下MYSQL命令行模式管理的問題分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

MySql數(shù)據(jù)庫是中小型網(wǎng)站后臺數(shù)據(jù)庫的首選,因為它對非商業(yè)應(yīng)用是免費的.網(wǎng)站開發(fā)者可以搭建一個"Linux+Apache+PHP+MySql"平臺,這是一個最省錢的高效平臺.在使用MySql進行開發(fā)時,MySql自帶的文檔對于新手來說是份很好的參考資料.本文是我在使用MySql中的小小心得。
當(dāng)前一般用戶的開發(fā)環(huán)境多是Windows或Linux,用戶可以到http://www.codepub.com/software/index.html下載相關(guān)版本進行安裝,在windows中MySql以服務(wù)形式存在,在使用前應(yīng)確保此服務(wù)已經(jīng)啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動者應(yīng)具有管理員權(quán)限。
剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名帳戶刪除、 root帳戶設(shè)置密碼,可用如下命令進行:

use mysql; 
delete from User where User=""; 
update User set Password=PASSWORD('newpassword') where User='root';

如果要對用戶所用的登錄終端進行限制,可以更新User表中相應(yīng)用戶的Host字段,在進行了以上更改后應(yīng)重新啟動數(shù)據(jù)庫服務(wù),此時登錄時可用如下類似命令:

mysql -uroot -p; 
mysql -uroot -pnewpassword; 
mysql mydb -uroot -p; 
mysql mydb -uroot -pnewpassword;

上面命令參數(shù)是常用參數(shù)的一部分,詳細情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。
在進行開發(fā)和實際應(yīng)用中,用戶不應(yīng)該只用root用戶進行連接數(shù)據(jù)庫,雖然使用root用戶進行測試時很方便,但會給系統(tǒng)帶來重大安全隱患,也不利于管理技術(shù)的提高。我們給一個應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個只進行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過User表來實現(xiàn)的,添加新用戶常用的方法有兩個,一是在User表插入相應(yīng)的數(shù)據(jù)行,同時設(shè)置相應(yīng)的權(quán)限;二是通過GRANT命令創(chuàng)建具有某種權(quán)限的用戶。其中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";
若要給此用戶賦予他在相應(yīng)對象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項。而對于用插入User表添加的用戶,Password字段應(yīng)用PASSWORD 函數(shù)進行更新加密,以防不軌之人竊看密碼。對于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過界的用戶應(yīng)及時回收權(quán)限,回收權(quán)限可以通過更新User表相應(yīng)字段,也可以使用REVOKE操作。
下面給出本人從其它資料(www.cn-java.com)獲得的對常用權(quán)限的解釋:
全局管理權(quán)限:  
FILE: 在MySQL服務(wù)器上讀寫文件。  
PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。  
RELOAD: 重載訪問控制表,刷新日志等。  
SHUTDOWN: 關(guān)閉MySQL服務(wù)。
數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:  
Alter: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。  
Create: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。  
Delete: 刪除表的記錄。  
Drop: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。  
INDEX: 建立或刪除索引。  
Insert: 增加表的記錄。  
Select: 顯示/搜索表的記錄。  
Update: 修改表中已存在的記錄。
特別的權(quán)限:  
ALL: 允許做任何事(和root一樣)。  
USAGE: 只允許登錄--其它什么也不允許做。  
最后給出本人在RedHat9.0下的MySql操作演示:
選用數(shù)據(jù)庫的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腳本,其內(nèi)容為:
Insert into TestTable(UserName,Address)values('Tom','shanghai');
Insert into TestTable(UserName,Address)values('John','beijing');
select * from TestTable;
運行已經(jīng)編輯好的SQL腳本可以用source filename 或 .\ filename。
以上只是對新手的簡單練習(xí),要成為一個數(shù)據(jù)庫好手,當(dāng)以孜孜不倦地追求知識,不斷地思考、嘗試、再思考。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
MySql常用命令總結(jié)  
這兩天搞個網(wǎng)站,又用到MySql,可是命令卻一個都想不起來,所以,趁這次機會,把這些整理一下,權(quán)當(dāng)作筆記吧,以便自己以后查閱!  
1:使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:  

 mysql> SHOW DATABASES;

2:2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA  

  mysql> Create DATABASE MYSQLDATA;

3:選擇你所創(chuàng)建的數(shù)據(jù)庫  

  mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)

4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表  

  mysql> SHOW TABLES;

5:創(chuàng)建一個數(shù)據(jù)庫表  

mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:顯示表的結(jié)構(gòu):  

  mysql> DESCRIBE MYTABLE;

7:往表中加入記錄  

 mysql> insert into MYTABLE values ("hyq","M");

8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)  

 mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

9:導(dǎo)入.sql文件命令(例如D:/mysql.sql)  

mysql>use database;  
  mysql>source d:/mysql.sql;

10:刪除表  

 mysql>drop TABLE MYTABLE;

11:清空表  

  mysql>delete from MYTABLE;

12:更新表中數(shù)據(jù)  

mysql>update MYTABLE set sex="f" where name='hyq';

以上是“MYSQL命令行模式管理的問題分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI