為方便查詢,特整理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 "<密碼>"
其中,權限可以是: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;
當然,這個表中還包含很多其它例如用戶密碼、權限設置等很多內容,操作時候尤其需要小心。
可以關注微信公眾號 lovephp,
來源:歪麥博客
https://www.awaimai.com/1050.html