当前位置: 首页 > 知识库问答 >
问题:

MySQL用户数据库没有密码列-在OSX上安装MySQL

东郭元魁
2023-03-14

我正在尝试更改MySql根密码。

下面是我所做的。

  1. 安装mysql-5.7.6~.dmg(社区服务器)和工作台。
  2. 关闭OSX系统首选项上的服务器。
  3. 使用控制台访问MySql。命令为mysqld_safe-skip-grant
  4. 执行Update user set password=password('1111')where user='root';并收到错误消息-->错误1054(42S22):“field list”中的列“password”未知。

另外,我确实使用了MySQL;。所以我确实在用户表上选择了查询,发现密码列实际上并不存在。

这很奇怪。原始用户表是否没有密码列?

我如何更改密码,它不存在?

谢谢你的回答:D

共有2个答案

岳昊空
2023-03-14

如果您没有在install(本例中是使用unix-socket插件的mysql)上设置密码,就会发生此错误。

但是如果从settings(表mysql.user)中删除插件链接,就会出现其他问题。这并不能解决问题,还会产生另一个问题。要修复已删除的链接并设置密码(“pwd”),请执行以下操作:

1)使用--skip-grant-tables运行,如上所述。

如果不起作用,则在/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]节中添加字符串skip-grant-tables。然后执行sudo service mysql restart

2)运行mysql-u root-p,然后(更改“pwd”):

update mysql.user 
    set authentication_string=PASSWORD("PWD"), plugin="mysql_native_password" 
    where User='root' and Host='localhost';    
flush privileges;

quit

然后SUDO service mysql Restart。检查:mysql-u root-p

restart之前,请从文件mysqld.cnf中删除该字符串(如果您在其中设置了该字符串)。

程磊
2023-03-14

在MySQL5.7中,删除了MySQL.user表字段中的password字段,现在字段名为'authentication_string'。

首先选择数据库:

mysql>use mysql;

然后显示表:

mysql>show tables;

您将找到user表,现在让我们看看它的字段:

mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(16)                          | 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                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)

惊奇!没有名为'password'的字段,密码字段名为'authentication_string'。所以,就这么做:

update user set authentication_string=password('1111') where user='root';

现在,一切都会好起来的。

与MySQL5.6相比,MySQL5.7的变化相当广泛:MySQL5.7的新内容

 类似资料:
  • 问题内容: 我正在尝试更改MySql根密码。 我所做的如下。 安装MySql-5.7.6〜.dmg(社区服务器)和工作台。 在OSX系统首选项上关闭服务器。 使用控制台访问MySql。该命令是 执行并得到一条错误消息-> 。 仅供参考,我做到了。所以我确实在用户表上选择了查询,发现密码列实际上不存在。 这很奇怪。原始用户表是否可能没有密码列? 如何更改不存在的密码? 谢谢你的回答:D 问题答案:

  • 问题内容: 如何编写脚本在Ubuntu上安装MySQL服务器? 将安装,但同时还会要求您在控制台中输入密码。 如何以非交互方式进行此操作?也就是说,写一个可以提供密码的脚本吗? 问题答案: 对于特定版本,例如,您需要像这样指定版本: 对于mysql-community-server,密钥略有不同: 将your_password替换为所需的root密码。(似乎your_password也可以留空以获

  • 我试图在我的datacontracts中对我的datamembers密码进行哈希/盐析,但当我添加一个新的学生,然后获取该学生集合时,密码字段尚未进行哈希/盐析,它会返回我键入的内容? 有人能帮我修一下吗?

  • 本文向大家介绍centOS7安装MySQL数据库,包括了centOS7安装MySQL数据库的使用技巧和注意事项,需要的朋友参考一下 1、先检测系统是否自带原有版本mysql安装包,如果有要先卸载删除,不然不能成功安装和启动; # rpm -qa|grep mysql      查看有哪些安装包,如果直接跳过,说明没有安装包,记忆可以直接进入第2、3 # yum remove mysql mysql

  • MySQL是最著名的开源数据库,现在正在开发的5.0版将具有大量的新特性,如存储过程和事务处理等。MySQL的性能正一步步地迫近Oracle、DB2等商业大型数据库,给这些产品造成了很大的压力。 在Debian中安装MySQL服务器是很方便的,使用apt-get命令即可完成。 debian:~# apt-get install mysql-server mysql-client mysql-s

  • 安装Mysql服务器 官方文档:安装和升级MySQL 这里给出在windows和linux中安装mysql服务器的方法,同时补充一种在docker中安装mysql容器的方法。 TIPS: 因为mysql在centos7中已经开始收费,因此本文在linux中实际安装的是mariadb。 windows 在windows下使用mysql服务器有两种方式,一种是使用mysql提供的MSI Install