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

16 浏览
0 Comments

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

我正在尝试更改MySql的root密码。

我所做的如下:

  1. 安装MySql-5.7.6 ~ .dmg(Community Server)和工作台。
  2. 在OSX系统首选项中关闭服务器。
  3. 使用控制台访问MySql。命令是mysqld_safe --skip-grant
  4. 执行update user set password=password('1111') where user='root';,并收到错误消息--> ERROR 1054 (42S22): Unknown column 'password' in 'field list'

顺便说一下,我执行了use mysql;

所以我在用户表上进行了选择查询,发现密码列实际上不存在。

这很奇怪。原始用户表可能没有密码列吗?

我怎么能更改不存在的密码呢?

谢谢你的答案:D

0
0 Comments

MySQL在OSX上安装时出现了问题,具体问题是MySQL用户数据库没有密码字段。解决问题的方法是将原来的更新密码的SQL语句中的"password"改为"authentication_string"。

具体解决方法如下:

首先,打开终端,进入MySQL:

mysql -u root

然后,执行下面的SQL语句:

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

将"YOURPASSWORDHERE"替换为你想设置的密码。

这样就成功地解决了MySQL在OSX上安装时缺少密码字段的问题。

0
0 Comments

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

在安装过程中如果没有设置密码,就会出现这个错误,这种情况下使用unix-socket插件的MySQL。但是,如果从设置中删除插件链接(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进行检查。

在重新启动之前,从mysqld.cnf文件中删除该字符串(如果在其中设置了该字符串)。

这个解决方法对我非常有效,特别感谢bl79!其他的方法都无法正常工作,但这个方法却起到了作用。

我遇到了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("MYNEWPASSWORD"), plugin="mysql_native_password"错误。你的答案非常棒!这个答案帮助了我6个小时。

plugin="mysql_native_password"对我非常有效。

完美解决我的问题。

0
0 Comments

在MySQL 5.7中,mysql.user表中的密码字段被移除,现在字段名为'authentication_string'。

首先选择数据库:

mysql>use mysql;

然后显示表:

mysql>show tables;

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

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';

现在一切都会正常了。

与MySQL 5.6相比,这些更改相当广泛:MySQL 5.7的新功能

即使在启动mysqld时使用了--skip-grant-tables限制,此方法也有效。由于您是匿名用户,您无法使用以下命令更改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password' ALTER USER 'root'@'*' IDENTIFIED BY 'new-password' 它会给您一个匿名用户权限错误。

如果根本没有表怎么办?

改变密码字段名称...一个决定导致了这么多人的麻烦...

即使执行了这个命令,我仍然无法使用密码登录update user set authentication_string=password('1111') where user='root';我得到ERROR 1698 (28000): Access denied for user 'root'@'localhost'

首先,macOS上的MySQL默认使用一个错误的密码(包含无效字符,因此我甚至无法在初始设置中连接到root)。然后他们不允许127.0.0.1,所以我必须手动授予它。但在此之前,我必须更改用户。现在他们改变了字段名。绝对的疯狂。

当在第2步重置root密码时,还要将auth插件更改为mysql_native_password:use mysql; update user set authentication_string=PASSWORD("") where User='root'; update user set plugin="mysql_native_password" where User='root'; # THIS LINE flush privileges; quit;

0