首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问MySql根用户,即使是在通过linux终端中的安全标志设置密码之后。

无法访问MySql根用户,即使是在通过linux终端中的安全标志设置密码之后。
EN

Stack Overflow用户
提问于 2015-11-02 13:05:18
回答 1查看 415关注 0票数 2

1)停止服务

代码语言:javascript
复制
sudo /etc/init.d/mysqld stop

2)以安全方式启动

代码语言:javascript
复制
sudo mysqld_safe --skip-grant-tables &

3)用户创建

代码语言:javascript
复制
mysql -u root

4)设置密码

代码语言:javascript
复制
UPDATE user SET Password=PASSWORD('my_password') where USER='root';

退出mysql控制台,重新启动服务,并尝试使用

代码语言:javascript
复制
mysql -u root -p my_password     

[vikram@VoltyLinux ~]$ mysql -u root -p
Enter password: *******

错误1045 (28000):拒绝访问用户'root'@'localhost‘(使用密码: YES)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-02 13:29:40

和第2步一样,在安全模式下重新启动mysql守护进程.

发出命令

代码语言:javascript
复制
select user,host,password from mysql.user where user='root';

将输出剪切并粘贴到文本编辑器中,以便在以下操作之前和之后进行比较(散列密码列值)。

对于每一行,请注意host列。在下面的示例中,我假设我有两行。一行以%为主机,下一行为localhost

对于每一行有一个host变体,您将发出一个命令。因此,在上面的示例中,我将总共发出2个命令,例如:

代码语言:javascript
复制
SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

代码语言:javascript
复制
select user,host,password from mysql.user where user='root';

剪切并粘贴到文本编辑器中。注意密码散列的更改。

从安全模式关闭守护进程,并正常重新启动。

尝试以根用户身份使用MyNewPassword登录

这里有几个链接。其中一个用于设置密码语法,另一个通常用于格兰特语法

对于这个问题范围狭窄的问题,即登录,赠款将是不必要的。但是,如果没有对数据库的适当授权,除了简单的命令(如select now(); )之外,一个将被沙箱化,不能做很多事情。

我并不是说一旦密码被更改,您的根用户就没有特权。赠款对于正常用户来说是必要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33478300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档