MySql命令實(shí)例匯總
本文實(shí)例總結(jié)了MySQL常用的各種操作命令。分享給大家供大家參考,具體如下:
Mysql安裝目錄
數(shù)據(jù)庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關(guān)命令
/usr/bin(mysqladmin mysqldump等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)
系統(tǒng)管理
連接MySQL
格式: mysql -h 主機(jī)地址 -u用戶名 -p用戶密碼
例 1:連接到本機(jī)上的 MySQL。
例 2:連接到遠(yuǎn)程主機(jī)上的 MYSQL。
修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進(jìn)入Mysql。
> use mysql; > update user set password=PASSWORD('新密碼') where user='用戶名'; > flush privileges; #更新權(quán)限 > quit; #退出
增加新用戶
格式:grant select on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為 abc,讓他可以在任何主機(jī)上登錄,并對所有數(shù)據(jù)庫有
查詢、插入、修改、刪除的權(quán)限。首先用以 root 用戶連入 MySQL,然后鍵入以下命令:
或者
然后刷新權(quán)限設(shè)置。
例 2:如果你不想 root 有密碼操作數(shù)據(jù)庫"mydb"里的數(shù)據(jù)表,可以再打一個命令將密碼消掉。
刪除用戶
hadoop@ubuntu:~$ mysql -u用戶名 -p密碼 mysql>delete from user where user='用戶名' and host='localhost'; mysql>flush privileges; //刪除用戶的數(shù)據(jù)庫 mysql>drop database dbname;
數(shù)據(jù)庫操作
顯示所有的數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫
連接數(shù)據(jù)庫
查看當(dāng)前使用的數(shù)據(jù)庫
當(dāng)前數(shù)據(jù)庫包含的表信息
刪除數(shù)據(jù)庫
表操作
備注:操作之前使用"use <數(shù)據(jù)庫名>"應(yīng)連接某個數(shù)據(jù)庫。
建表
命令:create table <表名> (<字段名 1> <類型 1> [,..<字段名 n> <類型 n>]);
例子:
mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default '0', > degree double(16,2));
獲取表結(jié)構(gòu)
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass mysql> desc MyClass; mysql> show columns from MyClass;
刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表
插入數(shù)據(jù)
命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
查詢表中的數(shù)據(jù)
查詢所有行
查詢前幾行數(shù)據(jù)
例如:查看表 MyClass 中前 2 行數(shù)據(jù)
或者
刪除表中數(shù)據(jù)
命令:delete from 表名 where 表達(dá)式
例如:刪除表 MyClass 中編號為 1 的記錄
修改表中數(shù)據(jù)
命令:update 表名 set 字段=新值,... where 條件
在表中增加字段
命令:alter table 表名 add 字段 類型 其他;
例如:在表 MyClass 中添加了一個字段 passtest,類型為 int(4),默認(rèn)值為 0
更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改為 YouClass
更新字段內(nèi)容
命令:update 表名 set 字段名 = 新內(nèi)容
update 表名 set 字段名 = replace(字段名, '舊內(nèi)容', '新內(nèi)容');
例如:文章前面加入 4 個空格
數(shù)據(jù)庫導(dǎo)入導(dǎo)出
從數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)庫文件
使用"mysqldump"命令
首先進(jìn)入 DOS 界面,然后進(jìn)行下面操作。
1)導(dǎo)出所有數(shù)據(jù)庫
格式:mysqldump -u [數(shù)據(jù)庫用戶名] -p -A>[備份文件的保存路徑]
2)導(dǎo)出數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)
格式:mysqldump -u [數(shù)據(jù)庫用戶名] -p [要備份的數(shù)據(jù)庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將數(shù)據(jù)庫 mydb 導(dǎo)出到 e:\MySQL\mydb.sql 文件中。
打開開始->運(yùn)行->輸入"cmd",進(jìn)入命令行模式。
然后輸入密碼,等待一會導(dǎo)出就成功了,可以到目標(biāo)文件中檢查是否成功。
例 2:將數(shù)據(jù)庫 mydb 中的 mytable 導(dǎo)出到 e:\MySQL\mytable.sql 文件中。
例 3:將數(shù)據(jù)庫 mydb 的結(jié)構(gòu)導(dǎo)出到 e:\MySQL\mydb_stru.sql 文件中。
備注:-h localhost 可以省略,其一般在虛擬主機(jī)上用。
3)只導(dǎo)出數(shù)據(jù)不導(dǎo)出數(shù)據(jù)結(jié)構(gòu)
格式:
mysqldump -u [數(shù)據(jù)庫用戶名] -p -t [要備份的數(shù)據(jù)庫名稱]>[備份文件的保存路徑]
4)導(dǎo)出數(shù)據(jù)庫中的Events
格式:
mysqldump -u [數(shù)據(jù)庫用戶名] -p -E [數(shù)據(jù)庫用戶名]>[備份文件的保存路徑]
5)導(dǎo)出數(shù)據(jù)庫中的存儲過程和函數(shù)
格式:
mysqldump -u [數(shù)據(jù)庫用戶名] -p -R [數(shù)據(jù)庫用戶名]>[備份文件的保存路徑]
從外部文件導(dǎo)入數(shù)據(jù)庫中
1)使用"source"命令
首先進(jìn)入"mysql"命令控制臺,然后創(chuàng)建數(shù)據(jù)庫,然后使用該數(shù)據(jù)庫。最后執(zhí)行下面操作。
mysql>source [備份文件的保存路徑]
2)使用"<"符號
首先進(jìn)入"mysql"命令控制臺,然后創(chuàng)建數(shù)據(jù)庫,然后退出 MySQL,進(jìn)入 DOS 界面。最后執(zhí)行下面操作。
mysql -u root –p < [備份文件的保存路徑]
常用MySQL語句補(bǔ)充:
1. 使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
2. 2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
3. 選擇你所創(chuàng)建的數(shù)據(jù)庫
4. 查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
5. 創(chuàng)建一個數(shù)據(jù)庫表
6. 顯示表的結(jié)構(gòu):
7. 往表中加入記錄
8. 用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)
9. 導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysql>source d:/mysql.sql;
10. 刪除表
11. 清空表
12. 更新表中數(shù)據(jù)
以下是在網(wǎng)絡(luò)看到的使用MySql的管理心得:
在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è)置密碼,可用如下命令進(jìn)行:
use mysql; delete from User where User=""; update User set Password=PASSWORD('newpassword') where User='root';
如果要對用戶所用的登錄終端進(jìn)行限制,可以更新User表中相應(yīng)用戶的Host字段,在進(jìn)行了以上更改后應(yīng)重新啟動數(shù)據(jù)庫服務(wù),此時登錄時可用如下類似命令:
mysql -uroot -p; mysql -uroot -pnewpassword; mysql mydb -uroot -p; mysql mydb -uroot -pnewpassword;
上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。
在進(jìn)行開發(fā)和實(shí)際應(yīng)用中,用戶不應(yīng)該只用root用戶進(jìn)行連接數(shù)據(jù)庫,雖然使用root用戶進(jìn)行測試時很方便,但會給系統(tǒng)帶來重大安全隱患,也不利于管理技 術(shù)的提高。我們給一個應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過 User表來實(shí)現(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ìn)行更新加密,以防不軌之人竊看密碼。對于那些已經(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: 只允許登錄–其它什么也不允許做。
希望本文所述對大家MySQL數(shù)據(jù)庫設(shè)計有所幫助。
相關(guān)文章
mysql中自增auto_increment功能的相關(guān)設(shè)置及問題
mysql中的自增auto_increment功能相信每位phper都用過,本文就為大家分享一下mysql字段自增功能的具體查看及設(shè)置方法2012-12-12關(guān)于數(shù)據(jù)庫中的查詢優(yōu)化
這篇文章主要介紹了關(guān)于數(shù)據(jù)庫中的查詢優(yōu)化,對于大型的應(yīng)用系統(tǒng),數(shù)據(jù)動輒上百萬,就需要了解DBMS對查詢語句的處理過程和優(yōu)化算法,更好的利用其優(yōu)化算法,以提高系統(tǒng)的性能,需要的朋友可以參考下2023-07-07mysql ERROR 1044 (42000): Access denied for user ''''@''loca
這篇文章主要介紹了mysql下提示ERROR 1044 (42000): Access denied for user ''@'localhost' to database,需要的朋友可以參考下2015-09-09