You must SET PASSWORD before executing this statement的解决方法

参考前文利用安全模式成功登陆,然后修改密码,等于给MySql设置了密码。登陆进去后,想创建一个数据库测试下。得到的结果确实:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码。
参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。如下操作后就ok了:

mysql> create database yan1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)

mysql> create database yan1;
Query OK, 1 row affected (0.00 sec)

也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!大爷的,真费劲啊。
这位仁兄也遇到了相同的问题。

最近新装好的mysql在进入mysql工具时,总是有错误提示:

# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者
# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

现在终于找到解决方法了。本来准备重装的,现在不必了。
方法操作很简单,如下:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
mysql> create database roger;
Query OK, 1 row affected (0.00 sec)
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!

(0)

相关推荐

  • MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决

    第一种方法: 推荐错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误. 原因分析: 在mysql.user表中可能出现user为空的记录,如: mysql> select host,user from user; +------------------+------+ | host | user | +------------------+------+ | % | test | | localhost

  • php password密码验证正则表达式(8位长度限制)

    复制代码 代码如下: <?php //密码验证 $password = "zongzi_Abc_oo13a2"; $n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array); //长度是8或更多 var_dump($array); ?>

  • PHP的password_hash()使用实例

    一.前言PHP5.5提供了许多新特性及Api函数,其中之一就是Password Hashing API(创建和校验哈希密码).它包含4个函数:password_get_info().password_hash().password_needs_rehash().password_verify().在PHP5.5之前,我们对于密码的加密可能更多的是采用md5或sha1之类的加密方式(没人像CSDN那样存明文吧..),如:echo md5("123456"); //输出: e10adc39

  • MYSQL安装时解决要输入current root password的解决方法

    终归结出以下解决方法: 1.清除MYSQL的安装目录,默认是C:\Program Files 2.清除MYSQL数据存放目录,一般在C:\Documents and Settings\All Users.windows\Application Data目录下 (需要注意的时Application Data这个文件夹默认是隐藏的,要通过 工具->文件夹选项->查看->显示所有 文件与文件夹 来设置隐藏文件可见). 删除MySQL文件夹 3.这步很重要,之前不管我怎么卸载MYSQL清空残余文

  • Linux 入门常用命令 password — 修改密码,改变用户

    passwd命令 出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令.因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令:用户以后还可以随时用passwd命令改变自己的口令. 该命令的一般格式为: passwd [用户名] 其中用户名为需要修改口令的用户名.只有超级用户可以使用"passwd 用户名"修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令. 该命令的使用方法如下: 输入 passw

  • mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法

    今天在启动mysql时出现以下问题: [root@www ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 网上的答案是各种各样的,最终解决问题的方法总结为以下,好多都是没有设置初始密码造成此问题的. 解决方法如下: [root@www ~]# service mysqld stop #先关闭mysql服务

  • js下在password表单内显示提示信息的解决办法

    经典有人要这个代码,考虑到password中输入的内容会显示为*号,所以要想办法解决*的问题.当初想用setAttribute动态修改type属性达到效果,再ff下测试成功,但没想到setAttribute对type属性的修改在ie中无效.最终采用背景图片的方式解决了这个.即为password设定一个背景图片,图片文字为提示信息 如:<img src="http://files.jb51.net/upload/20070819124037566.gif" />, 当鼠标放上

  • 基于JS实现密码框(password)中显示文字提示功能代码

    其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就是放两个文本框,样式以及定位都是一样的.先将type为password的隐藏,只显示type为text的伪密码框,value设置提示内容例如请输入密码.然后当input触发的时候,type为text的input隐藏,让type为password的input显示出来.然后当检测password的val

  • You must SET PASSWORD before executing this statement的解决方法

    参考前文利用安全模式成功登陆,然后修改密码,等于给MySql设置了密码.登陆进去后,想创建一个数据库测试下.得到的结果确实: ERROR 1820 (HY000): You must SET PASSWORD before executing this statement 非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码. 参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html.如下操作后就ok了: mysql> c

  • win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法

    近些时间在开始学MySQL,安装挺顺利的,按照网上现成的教程就能安装成功. 但是,在我开开心心地输入 mysql -uroot -p 再输入密码时,遇到了这个情况 Access denied for user 'root'@'localhost' (using password: YES) 在网上找了很多解决办法,但是基本只有一个,在.ini文件中的mysqld条目添加 skip-grant-tables 然后重启服务器,再按照刚刚的步骤再来一遍(最后不输入密码),但是还是一条语句把我拦了下来

  • cwRsync提示password file must be owned by root when running as root的解决方法

    当在Windows下面安装好cwRsync之后,也设置好了同步密码文件,当执行同步的时候遇到这个标题描述的问题: "password file must be owned by root when running as root" 我的解决办法是查找服务端(如果您安装了是客户端服务端整合的4.05版,则直接进入到安装目录下的Bin目录下)寻找是否存在chomd.exe这个文件(比如E:\Program Files (x86)\ICW\Bin这样的路径),然后,在当前路径下开启CMD(可

  • MySQL重置root密码提示"Unknown column ‘password"的解决方法

    晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown column 'password'的错误,看了user的表结构也确实没有该字段了.经查发现是MySQL升级后将字段名给改了,password名称改为authentication_string了.知道原因后,按照如下命令就可以成功重置root密码了. $sudo mysql.server stop #先关闭正常的MySQL服务 $sudo mysqld_safe --

  • MyBatis绑定错误提示BindingException:Invalid bound statement (not found)的解决方法

    如果出现: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上. 按以下步骤一一执行: 1.检查xml文件所在的package名称是否和interface对应的package名称一一对应 2.检查xml文件的namespace是否和xml文件的package名称一

  • Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    前言 最近在linux连接mysql /usr/local/mysql/bin/mysql -uroot -p 输入密码出现Access denied for user 'root'@'localhost'(using password: YES)错误.下面话不多说了,来一起看看详细的解决方法吧 解决办法: 1.先停止mysql 服务 service mysqld stop 2.进入mysql安装目录bin/ 使用safe模式,进行重启: ./mysqld_safe --skip-grant-t

  • MySQL错误代码1862 your password has expired的解决方法

    博主一两个月没用上mysql 今天就遇见了这个问题我的解决方法是这样的,大家也可以参考以下. 1.win+R,运行里输入services.msc打开服务,关闭MySQL57服务(57是我的MySQL Server的版本号) 2.右键属性,等下需要在cmd输入这条相仿的命令 运行中输入cmd,cd C:/Appserv/MySQL//bin回车进入bin目录下面,然后 mysqld --defaults-file="C:/Appserv/MySQL/my.ini"  --skip-gra

  • 引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    错误 Mybatis-Plus (简称MP) 是mybatis的一个增强工具,在mybatis的基础上只做增强不做改变,简化了开发效率.其实就是帮我们封装了一些简单的curd方法,可以直接调用,不必再重写这些简单的sql语句,类似JPA那样. 前两天创建了一个新项目,持久层框架用的是mybatis,同时引入mybatis-plus做增强工具,项目启动后,调用接口却发现报错了,报错的提醒如下: 错误的信息显示的是 "无效的绑定语句",报错的地方正是操作sql语句的方法,从网上查了一下答案

  • MySQL重置root密码提示"Unknown column ‘password"的解决方法

    晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown column 'password'的错误,看了user的表结构也确实没有该字段了.经查发现是MySQL升级后将字段名给改了,password名称改为authentication_string了.知道原因后,按照如下命令就可以成功重置root密码了. $sudo mysql.server stop #先关闭正常的MySQL服务 $sudo mysqld_safe --

随机推荐