1. 程式人生 > >MySQL(mysql 5.7)用戶密碼的管理

MySQL(mysql 5.7)用戶密碼的管理

AD from root text AS ant SQ netstat oss

數據庫是信息系統中非常重要的一個環節,合理高效的對其進行管理是非常重要的工作。通常由管理員創建不同的管理賬戶,然後給予不同的操作權限,把這些賬戶交給相應的管理人員使用。
在mysql數據庫中,所有的用戶信息都被保存在mysql庫的user表中

mysql> use mysql;
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
|··· //省略部分表           |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

管理管理用戶

通過對user表的添加、修改、刪除可以管理mysql的用戶,使用CREATE創建新用戶,DROP刪除用戶,SET修改用戶密碼。

用戶的添加、刪除

  • 明文添加新用戶
    create user ‘zhangsan‘@‘localhost‘ identified by ‘123456‘;
    //創建新用戶’zhangsan‘允許在本地登陸(可以更改為其他的IP地址)密碼為123123
  • 密文添加新用戶
    mysql> select password (‘123123‘);  //生成密文字符串
    +-------------------------------------------+
    | password (‘123123‘)                       |
    +-------------------------------------------+
    | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
    +-------------------------------------------+
    1 row in set, 1 warning (0.01 sec)
    mysql> create user ‘lisi‘@‘localhost‘ identified by password ‘*E56A114692FE0DE073F99A1DD6
          //密文創建新用戶
  • 查詢新添加的用戶
    select user,authentication_string,host from user;   //查詢user表中的用戶、密碼、主機三列數據

    技術分享圖片

  • 刪除用戶
    drop user ‘zhangsan‘@‘localhost‘;

    用戶密碼修改

  • 使用SET命令修改用戶密碼
    set password=password(‘123123‘);  //修改當前登陸用戶密碼
    set password for ‘lisi‘@‘localhost‘=password(‘123456‘);  //修改其他用戶密碼

    遺忘root密碼的解決方法

  • 先關閉正在運行中的MySQL進程
    systemctl stop mysqld.service 
    netstat -ntap | grep 3306     //查詢不到3306端口信息,則表示mysql進程已結束
    killall mysqld     //**如果正常的停止命令無法關閉進程,則可使用該命令

    技術分享圖片

  • 使用跳過user表驗證的方式登陸
    mysqld --skip-grant-tables   
  • 更改密碼
    輸入上一條命令後重新打開新的終端登陸
    mysql -u root   //新終端登陸
    update mysql.user set authentication_string=password(‘abcabc‘) where user=‘root‘;
    //更改用戶表(user)中的密碼項
    flush privileges;    //刷新,刷新之後方能使用新密碼登陸系統

MySQL(mysql 5.7)用戶密碼的管理