我最近安装了MySQL,似乎在安装后我必须重置密码。它不让我做别的事。

现在我已经用通常的方式重置了密码:

update user set password = password('XXX') where user = root;

(顺便说一句:我花了很长时间才发现MySQL出于某种奇怪的原因将字段“password”重命名为“authentication_string”。我对这样的变化感到很不安。

不幸的是,似乎我需要改变密码不同的方式,我不知道。也许在座有人已经遇到过这个问题了?


当前回答

5.7版本。“password”字段已被删除。'authentication_string'替换它

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;

其他回答

我在mac OS X 10.10.4(Yosemite)中也遇到了同样的问题。设置密码为我工作。修改mysql密码 mysql> SET PASSWORD = PASSWORD('your_password'); 查询OK, 0行受影响,1个警告(0.01秒)

在.bash_profile中设置Mysql环境路径变量,并添加以下代码行 导出路径= $路径:/ usr /地方/ mysql / bin, 然后执行如下命令。source .bash_profile

我也有同样的问题。拒绝访问。

所以我的解是,

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

你可以看到插入的列名

我把插件从 Unix_socket ->到mysql_native_password

输入这个

mysql > use mysql;
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;

完成了。 我的版本是10.1.48 MariaDB ubuntu 18

这招对我很管用:

ALTER USER(用户名)

我在这里找到的: http://dev.mysql.com/doc/refman/5.7/en/alter-user.html#alter-user-current

如果这不是你第一次设置密码,试试这个方法:

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

如果你得到以下错误,很有可能你以前从未设置过密码:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

第一次设置密码:

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

参考:https://dev.mysql.com/doc/refman/5.6/en/alter-user.html

运行这些:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

然后运行

./mysql -u root

它应该登录。现在运行 冲洗特权;

然后退出MySQL控制台并尝试登录。如果这不起作用,运行这些:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

修改xxxxxx为新密码。然后再次尝试登录。

更新。 请看这个http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

它应该能解决你的问题。

如果你在甲骨文试试这个

ALTER USER username IDENTIFIED BY password