爲方便查詢,特整理MySQL經常使用命令,以下。全部命令都親手檢驗過,請放心使用:)css
約定:$
後爲Shell環境命令,>
後爲MySQL命令。python
第一步,鏈接數據庫。mysql
$ mysql -u root -p # 進入MySQL bin目錄後執行,回車後輸入密碼鏈接。 # 經常使用參數:-h 服務器地址,-u 用戶名,-p 密碼,-P 端口
而後是一些經常使用的命令。
數據庫操做:sql
1 > create database dbname; # 建立數據庫,數據庫名爲dbname 2 > CREATE DATABASE `todo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; # 建立todo數據庫,並指定字符集 3 > show databases; # 顯示全部數據庫 4 > alter database character set utf8; # 修改數據庫字符集 5 > use dbname; # 選擇數據庫 6 > status; # 查看當前選擇(use)的數據庫 7 > drop database dbname; # 刪除數據庫
數據表操做:數據庫
1 > show tables; # 顯示全部表 2 > describe tablename; # 表結構詳細描述 3 > desc tablename; # 同 describe 命令同樣 4 > create table newtable like oldtable; # 複製表結構 5 > insert into newtable select * from oldtable; #複製表數據 6 > rename table tablelname to new_tablelname # 重命名錶,同時命名多個表用逗號「,」分割 7 > drop table tablename; # 刪除表
界面操做:服務器
> select version(),current_date; # 顯示當前mysql版本和當前日期 > exit
create table
命令用來建立數據表,格式:網絡
create table <表名> (<字段名1> <類型1> [,..<字段名n> <類型n>]);
數據的類型以後還能夠包含:數據寬度 + 是否爲空 + 是否主鍵 + 自動增長 + 默認值,它們書寫時不限順序。可是字段名和字段類型必須是第一和第二位。例如,創建一個名爲user的表:dom
mysql> create table user( -> 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) -> );
$ mysqladmin -u root password # 原始密碼爲空的狀況 New password: <輸入新的密碼> Confirm new password: <再次輸入新密碼> $ mysqladmin -u root -p password # 原始密碼不爲空的狀況 Enter password: <輸入舊的密碼> New password: <輸入新的密碼> Confirm new password: <再次輸入新密碼> $ mysqladmin -uroot -p123456 password # 原始密碼不爲空的狀況,效果和第二種方法同樣,只是顯式的輸入了原始密碼 New password: <輸入新的密碼> Confirm new password: <再次輸入新密碼>
$ mysqldump -u root -p dbname > dbname.sql # 備份整個數據庫(包含表結構和數據) $ mysqldump -u root -p -d dbname > dbname.sql # 備份數據庫表結構,不包含數據, $ mysqldump -u root -p dbname tablename > tablename.sql # 備份數據庫中的某張數據表(包含表結構和數據) $ mysqldump -u root -p dbname tablename1 tablename2 > tables.sql # 備份數據庫中2張數據表 $ mysqldump -u root -p -d dbname tablename > tablename.sql # 備份數據庫中的某張數據表的表結構(不含數據) $ mysqladmin -u root -p create dbname # 恢復數據庫步驟1:建立數據庫 $ mysql -u root -p dbname < dbname.sql # 恢復數據庫步驟2:恢復數據
若是是網絡上的服務器,能夠在mysqldump
以後用-h
指定服務器地址,例如:spa
$ mysqldump -h sql.domain.com -u root -p dbname > dbname.sql
導出查詢結果到本地計算機:命令行
mysql -h127.0.0.1 -P3306 -uroot -proot -Ae "use test;select * from user where status=4 order by id desc;" > "C:\Users\Gary\user.txt"
MySQL 默認有個root
用戶,可是這個用戶權限太大,通常只在管理數據庫時候才用。若是在項目中要鏈接 MySQL 數據庫,則建議新建一個權限較小的用戶來鏈接。在 MySQL 命令行模式下輸入以下命令能夠爲 MySQL 建立一個新用戶:
> CREATE USER username IDENTIFIED BY '123456'; # 其中,username是用戶名,123456是用戶密碼
新用戶建立完成,可是此刻若是以此用戶登錄的話,會報錯,由於咱們尚未爲這個用戶分配相應權限,分配權限的命令是grant
,格式爲:
GRANT <權限> ON <數據庫>.<表名> TO <用戶名>@<登陸主機> IDENTIFIED BY "<密碼>"
其中,權限能夠是:all
、select
、insert
、delete
、update
、drop
等值。
因而,用下面的命令就能夠執行特定的功能:
> GRANT ALL ON *.* TO 'username'@'localhost' IDENTIFIED BY '123456'; # 給用戶 username 分配全部數據庫的全部權限 > REVOKE ALL ON *.* FROM 'username'@'localhost'; # 若是以爲上面的權限太大,用 REVOKE 刪除原來權限 > GRANT ALL ON dbname.* TO 'username'@'localhost' IDENTIFIED BY '123456'; # 從新授予僅在dbname數據庫上的權限 > GRANT SELECT, UPDATE ON dbname.* TO 'username'@'localhost' IDENTIFIED BY '123456'; # 僅授予select、update權限,沒法執行insert、delete等命令 > FLUSH PRIVILEGES; # 每當調整權限後,一般須要用這個命令刷新權限 > DROP USER username@localhost; # 刪除用戶
仔細觀察上面幾個命令,能夠發現無論是受權,仍是刪除受權,都要指定響應的host
(即符號後面的登陸主機,主機也能夠用
%
通配符表示全部主機,或者192.168.1.%
表示特定主機段)。由於以上及格命令實際上都是在操做 mysql 數據庫中的user表,能夠用以下命令查看相應用戶及對應的host
:
SELECT user, host FROM user;