我正在尝试更改MySql根密码。
下面是我所做的。
mysqld_safe-skip-grant
Update user set password=password('1111')where user='root';
并收到错误消息-->错误1054(42S22):“field list”
中的列“password”未知。另外,我确实使用了MySQL;
。所以我确实在用户表上选择了查询,发现密码列实际上并不存在。
这很奇怪。原始用户表是否没有密码列?
我如何更改密码,它不存在?
谢谢你的回答:D
如果您没有在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中删除该字符串(如果您在其中设置了该字符串)。
在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