mysql5.7 mysql库下面的user表没有password字段无法修改密码

转自:https://www.cnblogs.com/benjamin77/p/8681763.html

如题所述,mysql5.7  mysql库下面的user表没有password字段无法修改密码,

5.7版本已经不再使用password来作为密码的字段了  而改成了authentication_string

登陆密码记不起:

[[email protected] ~]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

更改配置

vi /etc/my.cnf
#在mysqld模块下添加
skip-grant-tables

重启服务

systemctl restart mysqld

按照传统改密码方式发现没有 password这个字段。

mysql> update user set password=password(‘123‘) where user=‘root‘;
ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘

查询user表结构

mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Insert_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Update_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Delete_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Drop_priv              | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Reload_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Shutdown_priv          | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Process_priv           | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| File_priv              | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Grant_priv             | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| References_priv        | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Index_priv             | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Alter_priv             | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Show_db_priv           | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Super_priv             | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_tmp_table_priv  | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Lock_tables_priv       | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Execute_priv           | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Repl_slave_priv        | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Repl_client_priv       | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_view_priv       | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Show_view_priv         | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_routine_priv    | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Alter_routine_priv     | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_user_priv       | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Event_priv             | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Trigger_priv           | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Create_tablespace_priv | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| ssl_type               | enum(‘‘,‘ANY‘,‘X509‘,‘SPECIFIED‘) | NO   |     |                       |       |
| ssl_cipher             | blob                              | NO   |     | NULL                  |       |
| x509_issuer            | blob                              | NO   |     | NULL                  |       |
| x509_subject           | blob                              | NO   |     | NULL                  |       |
| max_questions          | int(11) unsigned                  | NO   |     | 0                     |       |
| max_updates            | int(11) unsigned                  | NO   |     | 0                     |       |
| max_connections        | int(11) unsigned                  | NO   |     | 0                     |       |
| max_user_connections   | int(11) unsigned                  | NO   |     | 0                     |       |
| plugin                 | char(64)                          | NO   |     | mysql_native_password |       |
| authentication_string  | text                              | YES  |     | NULL                  |       |
| password_expired       | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
| account_locked         | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+

网上查了一下据说5.7 版本password 字段改成authentication_string  password函数还是原来的password函数

mysql> update user set authentication_string=password(‘123‘) where user=‘root‘;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

#更改配置重启mysql  成功登陆

[[email protected] ~]# vi /etc/my.cnf注释 # skip-grant-tables
[[email protected] ~]# systemctl restart mysqld
[[email protected] ~]# mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log

Copyright (c) 2000, 2018, 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> 

原文地址:https://www.cnblogs.com/sharpest/p/10868656.html

时间: 2024-09-30 06:12:13

mysql5.7 mysql库下面的user表没有password字段无法修改密码的相关文章

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 这样就创建了一个名为:test 密码为:

Mysql5.7—mysql优化分区、分表(必备)

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. 分表 1. 分表简介 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表. 如果正在使用的表需要进行分区,就需要同时修改app的规则,使mysql可以得知用户查询的数据在哪. 2. 分表类型 分为垂直切分和水平切分 垂直切分:将某些列分到另一个表 水平切分:将某些行分到另一个表 3. 分表的方式 1) Mysql集群 它并不是

MySQL数据库实验:任务二 表数据的插入、修改及删除

目录 任务二 表数据的插入.修改及删除 一.利用界面工具插入数据 二.数据更新 (一)利用MySQL命令行窗口更新数据 (二)利用Navicat for MySQL客户端工具更新数据 三.数据库的备份与还原 1.备份转储数据库 2.还原数据库 任务二 表数据的插入.修改及删除 @ 班级 姓名 软件工程16-9班 洪燕妮 [实训目的与要求] 1.利用MySQL命令行窗口进行增.删.改数据操作: 2.利用界面工具进行增.删.改数据操作. [实训原理] MySQL的增.删.改数据操作命令. [实训步骤

MySQL5.7绿色版(免装版)的初始化和修改密码

1.下载MySQL5.7.18绿色版 1.1下载链接 以下是MySQL5.7.18绿色版的链接(来源oracle官网),打开链接直接下载 https://dev.mysql.com/gt/Downloads/MySQL-5.7/mysql-5.7.18-winx64.zip 1.2解压 解压到文件夹 2.新建或清空data文件夹 2.1解压以后,在目录下创建一个data文件夹 2.2如果原来已经有一个data文件夹,就把里面的数据全部删掉. 3.安装服务 3.1打开cmd(管理员) 右键开始菜单

MS SQL 为表中的字段添加/修改说明

--使用 execute sp_addextendedproperty / sp_updateextendedproperty 过程 --添加表说明 execute sp_addextendedproperty 'MS_Description','表说明','user','dbo','table','表名'; --添加表-字段说明 execute sp_addextendedproperty N'MS_Description',N'字段说明',N'SCHEMA',N'dbo',N'table',

python测试开发django-27.表单提交之post修改密码

前言 跟账号相关的功能一般是注册,登录,修改密码,密码找回功能,前面实现了登录和注册功能,本篇讲下修改密码功能实现 修改密码html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> </head> <body> <h1>新用户注册!</h

mysql 查找某值在库中的哪一个表那一个字段(半成品)

DROP PROCEDURE IF EXISTS `test3`; CREATE DEFINER = `root`@`localhost` PROCEDURE `test3`() BEGIN DECLARE tablename varchar(100); DECLARE columnname varchar(100); declare b int default 0; DECLARE cur CURSOR FOR select COLUMN_NAME,table_name from inform

django连接mysql数据库,往数据库表中添加字段

1.在数据库已经连接好,并激活的情况下 2.在models已经写好之后 3.对manage的操作: python manage.py validate   验证模型的有效性,validate 命令检查你的模型的语法和逻辑是否正确 python manage.py sqlall chapter3(项目名)   查看对应的sql语句,可以将其复制到mysql命令客户端,用于创建对应的表,也可以用命令执行: python manage.py syncdb  同步数据库,创建表 4.往对应模块添加字段对

MySql 建表、添加字段、修改字段SQL语句写法

建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,             # 主键 uid INT(11) NOT NULL DEFAULT 0,    # 创建者id context VARCHAR(600) NOT NULL DEFAULT '',  # 公告详细内容(300字) begintime DEC(20) NOT NULL DEF