MySQL用戶管理及SQL語句詳解

来源:http://www.cnblogs.com/clsn/archive/2017/12/16/8047028.html
-Advertisement-
Play Games

1.1 MySQL用戶管理 1.1.1 用戶的定義 用戶名+主機域 1.1.2 用戶的作用 1、用戶登錄 2、用於管理資料庫及數據 1.1.3 連接資料庫 定義用戶:用戶名+主機域,密碼 定義許可權:對不同的對象進行許可權(角色)定義 命令: grant 許可權 on 許可權範圍 to 用戶 identif ...


1.1 MySQL用戶管理

1.1.1 用戶的定義

  用戶名+主機域

mysql> select user,host,password from mysql.user;
+--------+------------+-------------------------------------------+
| user   | host       | password                                  |
+--------+------------+-------------------------------------------+
| root   | localhost  | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root   | 127.0.0.1  |                                           |
| znix   | 172.16.1.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| clsn   | 172.16.1.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root   | 10.0.0.1   | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+--------+------------+-------------------------------------------+
6 rows in set

1.1.2 用戶的作用

    1、用戶登錄

    2、用於管理資料庫及數據

1.1.3 連接資料庫

     定義用戶:用戶名+主機域,密碼

     定義許可權:對不同的對象進行許可權(角色)定義

命令:

  grant 許可權 on 許可權範圍  to 用戶  identified  by '密碼'

許可權

        對資料庫的讀、寫等操作
    (insert updateselectdeletedrop、create等)

角色

    資料庫定義好的一組許可權的定義
    (all privilegesreplication slave等)

許可權範圍

    全庫級別: *.*
    單庫級別:clsn.*
    單表級別:clsn.t1

用戶

    'clsn'@'localhost'  本地
    'clsn'@'192.168.66.149'
    'clsn'@'192.168.66.%'
    'clsn'@'192.168.66.14%'

1.1.4 【練習題】按照要求創建用戶

用戶只能通過10.0.0.0/24網段訪問,用戶名為clsn 密碼為123

這個用戶只能對clsn資料庫下的對象進行增insert create、改update 、查select;

  創建命令:

    grant select,create,insert,update on clsn.* to 'clsn'@'10.0.0.%' identified by '123';

查看用戶許可權

mysql>  show grants for clsn@'172.16.1.%'\G
*************************** 1. row ***************************
Grants for clsn@172.16.1.%: GRANT USAGE ON *.* TO 'clsn'@'172.16.1.%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257'
1 row in set (0.00 sec)

查看當前存在的用戶:

select user,host from mysql.user;

創建用戶語法

CREATE USER '用戶'@'主機' IDENTIFIED BY '密碼';

示例:

create user 'clsn'@'localhost' identified by 'clsn123'; 

註意這個樣創建的用戶只有連接許可權

企業里創建用戶一般是授權一個內網網段登錄,最常見的網段寫法有兩種。

方法1172.16.1.%%為通配符,匹配所有內容)。

方法2172.16.1.0/255.255.255.0,但是不能使用172.16.1.0/24,是個小遺憾。

標準的建用戶方法:

create user 'web'@'172.16.1.%' identified by 'web123';

查看用戶對應的許可權

show grants for oldboy@localhost\G

1.1.5 用戶刪除

刪除用戶語法:

drop user 'user'@'主機域'

【練習】用戶優化:只保留

| root | 127.0.0.1 |
| root | localhost |

 

特殊的刪除方法:(慎用,儘量不要直接去修改表)

mysql> delete from mysql.user where  user='clsn' and host='localhost'; 
Query OK, 1 row affected (0.00 sec)
mysql> flush privileges;

1.1.6 用戶授權

給用戶授權

# 創建用戶
create user 'clsn'@'localhost' identified by 'clsn123';
# 查看用戶
select user,host from mysql.user;
# 授權所有許可權給clsn用戶
GRANT ALL ON *.* TO 'clsn'@'localhost';
# 查看clsn用戶的許可權
SHOW GRANTS FOR 'clsn'@'localhost'\G

創建用戶的同時授權

grant all on *.* to clsn@'172.16.1.%' identified by 'clsn123';
# 刷新許可權
flush privileges; #<==可以不用。

創建用戶然後授權

create user 'clsn'@'localhost' identified by 'clsn123';
GRANT ALL ON *.* TO 'clsn'@'localhost';

授權和root一樣的許可權

grant all on *.* to system@'localhost' identified by 'clsn123' with grant option;

授權給用戶select,create,insert,update 許可權

grant select,create,insert,update on clsn.* to 'clsn'@'10.0.0.%' identified by '123';

回收許可權

REVOKE INSERT ON *.* FROM clsn@localhost;

可以授權的用戶許可權

INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, 
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, 
CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, 
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER 
ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

【示例】博客授權收回示例

grant select,insert,update,delete,create,drop on blog.* to 'blog'@'172.16.1.%' identified by 'blog123';
revoke create,drop on blog.* from 'blog'@'172.16.1.%';

   授權博客類的最多許可權:select,insert,update,delete

1.2 MySQL 客戶端工具

1.2.1 MysQL客戶端命令介紹

  mysql命令客戶端

    用於資料庫連接管理

    將 用戶SQL 語句發送到伺服器

  mysqladmin命令 :命令行管理工具

  mysqldump命令 :備份資料庫和表的內容

1.2.2 mysql命令說明

  用於連接資料庫

  用於管理資料庫通過下列方式進行管理

命令介面自帶命令

  DDL:數據定義語言

  DCL:數據控制語言

  DML:數據操作語言

  mysql命令介面自帶命令說明

命令

命令說明

\h help

獲取幫助

\G

格式化輸出(行轉列)

\T tee

記錄操作日誌  tee /tmp/mysql.log

\c CTRL+c

退出mysql

\s status

查看資料庫狀態信息

\. source

mysql> source /tmp/world.sql

\!

使用shell中的命令

 mysql> \! cat /etc/redhat-release

CentOS release 6.9 (Final) 

\u use   

use  world

show databases  看當前所有資料庫的名字

show tables   查看當前use到的資料庫所有的表

show  tables from world   查看目標資料庫下的表

快捷鍵

上下翻頁、TAB鍵、ctrl +C ctrl +L

1.2.2.1  mysql中help命令的使用

  在mysql命令行中輸入mysql或 ?都可以查看幫助

mysql> help

  使用 help contents查看完整的sql類別列表幫助

mysql> help contents

  有關特定 SQL 類別或語句的幫助

mysql> help Account Management

  查看 grant 的幫助

mysql> help GRANT

  有關與狀態相關的 SQL 語句的幫助

mysql> help status

1.2.2.2  source命令的使用

在 mysql 中處理輸入文件:

如果這些文件包含 SQL 語句,則稱為“腳本文件”或“批處理文件”。

使用 SOURCE 命令:

mysql> SOURCE /data/mysql/world.sql

  或者使用非互動式:(儘量避免使用mysql 導入數據,會產生大量的無用日誌)

mysql</data/mysql/world.sql

1.2.3 mysqladmin命令說明

基本語法

mysqladmin -u<name> -p<password> commands

  命令說明圖表

功能選項

說明

mysqladmin -u用戶 -p密碼 ping

“強制回應 (Ping)”伺服器。

mysqladmin -u用戶 -p密碼 shutdown

關閉伺服器。

mysqladmin -u用戶 -p密碼 create databasename

創建資料庫。

mysqladmin -u用戶 -p密碼drop databasename

刪除資料庫

mysqladmin -u用戶 -p密碼 version

顯示伺服器和版本信息

mysqladmin -u用戶 -p密碼 status

顯示或重置伺服器狀態變數

mysqladmin -u用戶 -p密碼 password

設置口令

mysqladmin -u用戶 -p密碼 flush-privileges

重新刷新授權表。

mysqladmin -u用戶 -p密碼 flush-logs

刷新日誌文件和高速緩存。

以上信息通過mysqladmin  --help 獲得

1.2.4 mysqldump簡單說明

  mysqldump是一款資料庫備份工具。

命令幫助及基本語法:

[root@db02 ~]# mysqldump --help
Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

  情參照mysqldump --help

1.3 SQL語句入門

1.3.1 DDL語句(數據定義語言)

定義範圍:

        :名字、特性

        表:表名字、列

1.3.1.1  資料庫查看

查看資料庫--查看全部

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| clsn               |
+--------------------+

   查看資料庫--模糊匹配

mysql> show databases like "%s%";
+--------------------+
| Database (%s%)     |
+--------------------+
| information_schema |
| clsn               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

查看你相關的幫助

mysql> ? show databases;
Name: 'SHOW DATABASES'
Description:
Syntax:
SHOW {DATABASES | SCHEMAS}
    [LIKE 'pattern' | WHERE expr]

1.3.1.2  資料庫操作

  創建一個資料庫

mysql> create database haha;

   通過show 命令能夠查看創建的資料庫的格式

mysql> show create database haha;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| haha     | CREATE DATABASE `haha` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

創建資料庫時定義字元編碼

mysql> create database clsn charset utf8 ;
mysql> show create database clsn;     查詢資料庫定義信息。

存在的資料庫修改字元編碼:

mysql> alter database clsn charset gbk;

修改資料庫編碼格式示例

mysql> alter database haha charset gbk
    -&

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1)擴展方法是什麼? 擴展方法可以在不修改原有類的代碼前提下,給類“增加”一個方法。擴展方法雖然屬於靜態方法,但調用的語法卻和對象調用類似。直接用一個例子來演示擴展方法。 1.準備實體類 public class Person { public Person(string name, int age ...
  • 演示產品源碼下載地址:http://www.jinhusns.com ...
  • 微軟推出的ORM,EF在我開發的項目中給我的感覺一直都是慢.優點是高度封裝的底層.便於開發.Dapper在多篇性能比較的網站中.都是名列前三.缺點是手寫SQL,不便於開發.如果能結合EF的優點和Dapper的優點.那麼此次改造相比原生Dapper是脫胎換骨的. 上圖是Dapper最簡單的語法.相比A ...
  • 一、.NET Core的誕生 聊 .NET Core,就不得不說他的爸爸 .NET。當年Java剛剛興起,如火如荼,微軟也非常推崇Java,當時Windows平臺的Java虛擬機就是微軟按照JVM標準實現的,據說也是當時性能最好的Java虛擬機。但是微軟也是有私心的,微軟總想搞點Windows平臺上 ...
  • 一、控制系統啟動過程 1.要想順利啟動系統,bootsect.s必須讓在磁碟的固定位置上,這個工作是由 make / makefile 完成的 2.啟動保護模式以後,指令jmpi 0, 8和沒有啟動保護模式的區別:得出跳轉地址的方式不一樣 3.在setup中獲取記憶體大小這一個硬體參數的目的是為後面的 ...
  • 一、快照 例如,當我們在虛擬機上做實驗或是作測試時,難免碰到一些不熟悉的地方,此時做個快照,備份一下當前的系統狀態,一旦操作錯誤,可以很快還原到出錯前的狀態,完成實驗,最終避免一步的失誤導致重新開始整個實驗或測試的後果。 操作演示: 二、克隆 VMware支持兩種類型的克隆: 完整克隆 鏈接克隆 完 ...
  • 原文鏈接: http://blog.csdn.net/luoweifu/article/details/46595285 什麼是線程 什麼是線程?線程與進程有什麼關係?這是一個非常抽象的問題,也是一個特別廣的話題,涉及到非常多的知識。我不能確保能把它講得好,也不能確保講的內容全部都正確。即使這樣,我 ...
  • 1、cd 跳轉到根目錄 2、cd .. 跳轉到上一級目錄 3、ll和ls查看當前目錄的內容 4、vi 查看文檔內容 5、/ 用vi打開文件後,該命令可以定位到你要查找的內容 6、tail -f 文件名 查看文件,文件會實時更新 7、 chmod u+x file、 chmod u-x file、ch ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...