1. 程式人生 > >5. 建立使用者、授權以及修改密碼等許可權操作

5. 建立使用者、授權以及修改密碼等許可權操作

今天突然有了修改密碼的需求,然後試著在網上搜了下方法,好像都不能成功,後來看了下官方文件才發現,是因為我用的mysql版本太高了,已經改變了修改密碼的方法。

檢視mysql版本

如果還沒連線到mysql伺服器,那麼採用以下三種方法:

-- 方法一
C:\Users\root>mysql -V
mysql  Ver 14.14 Distrib 5.7.20, for Win64 (x86_64)

-- 方法二
C:\Users\root>mysql --help | find "Distrib"
mysql  Ver 14.14 Distrib 5.7.20, for Win64 (x86_64)

-- 方法三,可以看到登入的時候會顯示mysql版本資訊
C:\Users\root>mysql -uroot -p Enter password: ******* Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20 Server version: 5.7.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

如果已經連線到mysql資料庫,採用以下三種方法:

-- 第一種方法
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.20-log |
+------------+
1 row in set (0.00 sec)

-- 第二種方法
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.20, for Win64 (x86_64)

Connection id:          21
Current database
: Current user: [email protected] SSL: Not in use Using delimiter: ;
Server version: 5.7.20-log MySQL Community Server (GPL) Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: gbk Conn. characterset: gbk TCP port: 3306 Uptime: 6 days 46 min 10 sec Threads: 1 Questions: 158 Slow queries: 0 Opens: 135 Flush tables: 1 Open tables: 125 Queries per second avg: 0.000 -------------- -- 第三種方法 mysql> \s -------------- mysql Ver 14.14 Distrib 5.7.20, for Win64 (x86_64) Connection id: 21 Current database: Current user: [email protected] SSL: Not in use Using delimiter: ; Server version: 5.7.20-log MySQL Community Server (GPL) Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: gbk Conn. characterset: gbk TCP port: 3306 Uptime: 6 days 48 min 28 sec Threads: 1 Questions: 161 Slow queries: 0 Opens: 135 Flush tables: 1 Open tables: 125 Queries per second avg: 0.000 --------------

總結

因此,由以上檢視版本的方法,可以知道,我用的mysql版本為5.7.20-log MySQL Community Server (GPL),已經不支援以前修改密碼的方式了。

檢視系統配置

-- 資料庫系統配置儲存在mysql資料庫中,切換到mysql資料庫
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| menageries         |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test               |
| world              |
+--------------------+
8 rows in set (0.00 sec)

mysql> use mysql
Database changed

-- 可以看出,使用者配置資訊儲存在user表中
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.27 sec)

-- 查看錶格屬性有哪些,由於表格太長,此處不一一列出,分析知道其中有一行名為authentication_string,這就是我們找的屬性
mysql> describe user;
……
 authentication_string  | text
……

-- 果然這裡面儲存的是使用者密碼,但是並非明文顯示
mysql> select  user,authentication_string from user;
+---------------+-------------------------------------------+
| user          | authentication_string                     |
+---------------+-------------------------------------------+
| root          | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| test          | *676243218923905CF94CB52A3C9D3EB30CE8E20D |
+---------------+-------------------------------------------+
4 rows in set (0.00 sec)

建立使用者

mysql> create user '2b'@'localhost' identified by '2b';
Query OK, 0 rows affected (1.06 sec)

mysql> select  user,authentication_string from user;
+---------------+-------------------------------------------+
| user          | authentication_string                     |
+---------------+-------------------------------------------+
| root          | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| test          | *676243218923905CF94CB52A3C9D3EB30CE8E20D |
| 2b            | *3382AC02521A1462D80B82F33C8F09029CD69A42 |
+---------------+-------------------------------------------+
5 rows in set (0.00 sec)

可以看到,我們成功的建立了一個使用者2b,我們給他設定了密碼2b,但是是加密顯示的。

刪除使用者

mysql> delete from user where user='2b';
Query OK, 1 row affected (0.45 sec)

mysql> select  user,authentication_string from user;
+---------------+-------------------------------------------+
| user          | authentication_string                     |
+---------------+-------------------------------------------+
| root          | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| test          | *676243218923905CF94CB52A3C9D3EB30CE8E20D |
+---------------+-------------------------------------------+
4 rows in set (0.00 sec)

執行刪除命令的時候,千萬要再三確認再回車,不然誤刪了就麻煩了。

授權

mysql> grant all on test.* to 'test'@'localhost';
Query OK, 0 rows affected (0.05 sec)

命令:grant privileges on databasename.tablename to ‘username’@’host’

privileges為使用者操作許可權,如select、insert等,如果要授予所有的許可權,則用all;
databasename為資料庫名,table那麼為相對應的資料庫中的列表,如果授予全部列表,則用星號表示。

檢視使用者授權

使用show grants for [email protected]命令檢視

mysql> show grants for [email protected];
+--------------------------------------------------------+
| Grants for [email protected]                              |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'localhost'               |
| GRANT ALL PRIVILEGES ON `test`.* TO 'test'@'localhost' |
+--------------------------------------------------------+
2 rows in set (0.00 sec)

撤銷使用者許可權

使用REVOKE命令來收回分配出去的許可權。

mysql> revoke all on test.* from 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

flush privileges

建立了使用者,刪除了使用者,進行了授權以後,儘量進行flush privileges;操作,否則可能相應的操作並不能立即生效。

更改使用者密碼

我又實驗了一下,用之前的版本的修改方法修改密碼:

-- 看起來好像不成功
mysql> set password for '2b'@'localhost'=password('123');
Query OK, 0 rows affected, 1 warning (0.03 sec)

當我執行完上面命令以後,提示我有一個警示,沒有資料受到影響。但是當我用123這個密碼登陸2b使用者的時候,竟然登上去了!!!這騙得我太辛苦了……^;^

然後我又換了一種方法,用新加的authentication_string屬性去修改密碼,居然也成功了!

mysql> update mysql.user set authentication_string=password('123') where user='2b';
Query OK, 1 row affected, 1 warning (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 1

-- 下面這一行必須要執行,否則不能立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

但是從這第二種方法明顯可以看出,修改成功了,因為它顯示一行受到影響。

相關推薦

5. 建立使用者授權以及修改密碼許可權操作

今天突然有了修改密碼的需求,然後試著在網上搜了下方法,好像都不能成功,後來看了下官方文件才發現,是因為我用的mysql版本太高了,已經改變了修改密碼的方法。 檢視mysql版本 如果還沒連線到mysql伺服器,那麼採用以下三種方法: -- 方法

mysql安裝以及修改密碼許可權

                                 MYSQL安裝 之前用的都是sqlserver,企業用的好像都是mysql,畢竟mysql是免費的版本。 所以今天試了試mysql的安裝。 首先下載mysql。可以去官網,然後配置環境變數。 環境變數裡

MySql 5.7中新建資料庫,新增使用者,使用者授權,刪除使用者,修改密碼操作

mysql 5.7版本還是和之前的版本有些不一樣,這裡不做說明。僅僅記錄一些簡單的sql操作,比如修改密碼操作和原來其他版本操作方法不一樣,這裡也簡單整理了下做資料庫。 1、新建使用者 建立test使用者,密碼是1234。 mysql -u root -p creat

linux下對mysql5.7.22,建立使用者授權修改使用者密碼

一、建立使用者和授權: 1、root登入後: mysql -uroot -p 2、建立使用者 mysql>create user 'dev'@'%' identified by 'dev_123456';3、授權資料庫Dev mysql>grant all privi

linux安裝mysql以及修改密碼和重啟mysql相關命令 Linux啟動/停止/重啟Mysql資料庫的方法

Linux/UNIX 上安裝 MySQL Linux平臺上推薦使用RPM包來安裝Mysql,MySQL AB提供了以下RPM包的下載地址: MySQL - MySQL伺服器。你需要該選項,除非你只想連線執行在另一臺機器上的MySQL伺服器。 MySQL-client - MySQL 客戶端程式,

Centos 建立使用者修改密碼操作

二、專門新建一個FTP伺服器的使用者 在此我已ftpuser為例子: 命令:useradd ftpuser  新增一個使用者ftpuser            passwd  ftpuser  為ftpuser設定密碼,期間會有兩次提示輸入密碼確認。 三、為FTP服務設定防火牆     f

CentOS7安裝MySQL5.7以及修改密碼

  CentOS7安裝mysql [[email protected] ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm --2018-11-08 18:43:55-- h

Centos7 修改SSH埠,以及修改密碼

前兩天公司Linux主機被qW3xT.3 挖礦病毒攻擊了~~,然後就對Centos7各種設定。 1、開啟防火牆, (以前都是出於關閉狀態); 2、修改預設的SSH 22 埠; 3、修改密碼。 修改SSH埠步驟如下: 1>  修改SSH配置檔案 vim /etc

考試管理系統,具備簡單的註冊,考試,檢視歷次成績,修改密碼功能

package com.ems.tomzhang; /** 這是一個考試管理系統 包含註冊,考試,檢視歷史成績,修改密碼等功能 @author :Tom:Zhang */ import java.io.BufferedReader; import java.

CentOS7安裝mysql5.7以及修改密碼和匯入匯出資料庫

centos7安裝mysql 5.7 1.檢測系統內部有沒有安裝其他的mysql資料庫 rpm -qa | grep mysql 然後如果有的話刪除這些mysql yum remove 查出來的所有名字 2.徹底刪除系統中mysql的目錄 fin

Android——登入介面SharedPreferences實現記住密碼賬戶資訊

先看下效果圖: 該介面的佈局檔案為: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/androi

Django登入註冊和修改密碼簡單頁面實現

1、建立Model userpw/models.py from django.db import models import hashlib # Create your models here. class User(models.Model): username

網站使用者登入註冊和修改密碼常用程式碼,採用三層架構

建立使用者表的Sql語句,資料庫為SQL Server2000: create table "User" ( UserID int not null, UserName varc

Asp.net Core 系列之--5.認證授權與自定義許可權的實現

ChuanGoing 2019-11-24   asp.net core系列已經來到了第五篇,通過之前的基礎介紹,我們瞭解了事件訂閱/釋出的eventbus整個流程,初探dapper ORM實現,並且簡單的介紹了領域模型、領域倉儲及服務實現,結合上一篇的日誌、錯誤處理及事務和本篇將要介紹的許可權,大

centos7用戶以及acl權限的操作

gin 附加 家目錄 切換 groupdel centos7 txt passwd user 用戶:a. 添加用戶: useradd lee #添加用戶,並建立家目錄 useradd lee -s /sbin/nologin -M #添加用戶,禁止登錄,沒有家

jQuery設置和獲取以及修改class name值操作

ID 分隔 class post add 添加 第一個元素 css屬性 翻譯 在Web程序開發中、很多時候會用需要修改Html標簽的class名稱、來達到修改標簽樣式的效果、那麽在代碼中一般是怎麽操作的呢、本文將為你詳細講解一下class的使用、在jQuery中可以使用at

檔案上傳至oss後,獲取圖片縮率圖獲取視訊截幀後續操作

上一篇文章說了一下檔案上傳至oss:https://blog.csdn.net/new_programmer_h/article/details/84307005 這裡說一下上傳後的一些後續操作:常用的獲取圖片縮率圖、獲取視訊截幀生成封面圖。自我感覺阿里oss對於這些處理封裝的很好,只要根據:"%s|sys

影象卷積相關以及在MATLAB中的操作

原文:http://www.cnblogs.com/zjutzz/p/5661543.html 影象卷積、相關以及在MATLAB中的操作 區分卷積和相關 影象處理中常常需要用一個濾波器做空間濾波操作。空間濾波操作有時候也被叫做卷積濾波,或者乾脆叫卷積(離散的卷積,不是微

java8流(Stream API)使用詳解:篩選切片對映查詢匹配和歸約操作

上一篇中介紹了集合操作的痛點並發現集合操作的這些痛點在java8流API面前基本都不是事,隨後引出了流的定義並介紹了流操作的型別、特徵,以及使用流的基本步驟,本篇將逐一介紹Stream Api中各種流操作及一些特殊流的使用。 用謂詞篩選 關於篩選在該系列前面文章中已經出現

linux 中的mysql修改密碼及其許可權

修改的使用者都以root為列。 一、知道原來的myql資料庫的root密碼; ①: 在終端命令列輸入 mysqladmin -u root -p password "新密碼" 回車 ,Enter password: 【輸入原來的舊密碼】 ②: 登入mysql