MySQL常用命令大全


為方便查詢,特整理MySQL常用命令,如下。所有命令都親手檢驗過,請放心使用:)

約定:$后為Shell環境命令,>后為MySQL命令。

1 常用命令

第一步,連接數據庫。

$ mysql -u root -p                           # 進入MySQL bin目錄后執行,回車后輸入密碼連接。
                                             # 常用參數:-h 服務器地址,-u 用戶名,-p 密碼,-P 端口

然后是一些常用的命令。
數據庫操作:

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     

2 創建數據表

create table命令用來創建數據表,格式:

create table <表名> (<字段名1> <類型1> [,..<字段名n> <類型n>]);

數據的類型之后還可以包含:數據寬度 + 是否為空 + 是否主鍵 + 自動增加 + 默認值,它們書寫時不限順序。但是字段名和字段類型必須是第一和第二位。例如,建立一個名為user的表:

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)
    -> );

3 修改root的密碼

$ 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: <再次輸入新密碼>

4 備份和恢復

$ 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指定服務器地址,例如:

$ 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"

5 用戶和權限管理

MySQL 默認有個root用戶,但是這個用戶權限太大,一般只在管理數據庫時候才用。如果在項目中要連接 MySQL 數據庫,則建議新建一個權限較小的用戶來連接。在 MySQL 命令行模式下輸入如下命令可以為 MySQL 創建一個新用戶:

> CREATE USER username IDENTIFIED BY '123456';        # 其中,username是用戶名,123456是用戶密碼

新用戶創建完成,但是此刻如果以此用戶登陸的話,會報錯,因為我們還沒有為這個用戶分配相應權限,分配權限的命令是grant,格式為:

GRANT <權限> ON <數據庫>.<表名> TO <用戶名>@<登錄主機> IDENTIFIED BY "<密碼>"

其中,權限可以是:allselectinsertdeleteupdatedrop等值。

於是,用下面的命令就可以執行特定的功能:

> 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;

當然,這個表中還包含很多其它例如用戶密碼、權限設置等很多內容,操作時候尤其需要小心。

可以關注微信公眾號 lovephp, 

來源:歪麥博客

https://www.awaimai.com/1050.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM