MySQL5.7數據庫的基本操作命令


MySQL5.7中添加用戶,新建數據庫,用戶授權,刪除用戶,修改密碼(注意每行后邊都跟個;表示一個命令語句結束):

登錄MySQL

mysql -u root -p

Enter password:密碼

1.列出所有數據庫

show database;

2.切換數據庫

use 數據庫名;

3.列出某個數據庫所有表

use 數據庫名;

show tables;

4.查詢數據

use 數據庫名;

select 字段名(多個字段用“,”隔開,*表示所有字段) from 數據表名;

也可以用 select 字段名(多個字段用“,”隔開,*表示所有字段) from 數據庫名.數據表名;

5.顯示數據表結構

describe 數據表名;     # 也可以簡寫為 desc 數據表名;

也可以用 describe 數據庫名.數據表名;

6.刪除數據庫和數據表

drop database 數據庫名;

drop table 數據表名;

7.新建用戶

創建用戶:

insert into mysql.user(Host,User,Password) values("localhost","zhangsan",password("123456"));

需要注意的是,如上,用insert方法向MySQL5.7中添加用戶出現 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 的錯誤,MySQL5.7為了數據庫的安全默認是禁止這種方法來創建用戶的,所以應該避免用這種插入的方式來創建用戶,正確的創建用戶的方式是:

無密碼:create user '用戶名'@'localhost';

有密碼:create user '用戶名'@'localhost' identified by '密碼';

create user '用戶名'@'localhost' identified by '密碼';  # 本地登錄

create user '用戶名'@'%' identified by '密碼';            # 遠程登錄

exit    # 退出數據庫

mysql -u 用戶名 -p    # 測試是否創建成功

8.使用GRANT命令為賬戶授權(需在root賬戶下操作)

GRANT命令的常見格式以及解釋
命令 作用
GRANT 權限 ON 數據庫.表名稱 TO 用戶名@登錄主機 對某個特定數據庫中的特定表給予授權
GRANT 權限 ON 數據庫.* TO 用戶名@登錄主機 對某個特定數據庫中的所有表給予授權
GRANT 權限 ON *.* TO 用戶名@登錄主機 對所有數據庫及所有表給予授權
GRANT 權限1,權限2 ON 數據庫.* TO 用戶名@登錄主機 對某個數據庫中的所有表給予多個授權
GRANT ALL PRIVILEGES ON *.* TO 用戶名@登錄主機   對所有數據庫及所有表給予全部授權(需謹慎操作)

注意:授權的同時如需創建用戶並設置用戶密碼,用如下的命令

grant 權限 on 數據庫.* to '用戶名'@'登錄主機' identified by '密碼'

首先為用戶創建一個數據庫(testDB):

create database testDB;

如果需要指定數據庫的字符編碼為utf8,用如下命令:

create database testDB default charset utf8 collate utf8_general_ci;

(1)授權zhangsan用戶擁有testDB數據庫的所有權限(某個數據庫的所有權限):

grant all privileges on testDB.* to 'zhangsan'@'localhost';

flush privileges;     # 刷新系統權限表

show grants for 'zhangsan'@'localhost';      # 查看賬戶 zhangsan 的權限

(2)如果想指定部分權限給zhangsan用戶,可以這樣來寫:

grant select,update on testDB.* to 'zhangsan'@'localhost';

flush privileges;     # 刷新系統權限表

(3)授權zhangsan用戶擁有所有數據庫的某些權限:

grant select,delete,update,create,drop on *.* to 'zhangsan'@'%';       # 注意:需要mysql.user表中zhangsan賬戶對應的Host的字段值為“%”,才能正確執行此命令

# zhangsan用戶對所有數據庫都有 select,delete,update,create,drop 權限。

# @'%' 表示對所有非本地主機授權,不包括localhost。

# @'localhost' 表示對所有本地主機授權。

9.使用REVOKE命令取消賬戶權限

revoke select on *.* from 'zhangsan'@'localhost';       # 取消zhangsan對所有數據庫的查詢權限

revoke all on testDB.* from 'zhangsan'@'localhost';     # 取消zhangsan對testDB數據庫的所有權限

show grants for 'zhangsan'@'localhost';      # 查看賬戶 zhangsan 的權限

10.刪除用戶

delete from user where User='zhangsan' and Host='localhost';

flush privileges;

或者也可以使用如下命令,刪除賬戶及權限

drop user '用戶名'@'%';

drop user '用戶名'@ 'localhost';

11.修改指定用戶密碼

update mysql.user set authentication_string=password('新密碼') where User='zhangsan' and Host='localhost';

flush privileges;

注意:在 MySQL5.7 中 user 表已經不再使用 password 來作為密碼的字段了而改成了authentication_string。


免責聲明!

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



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