首页 > 编程知识 正文

mysql跳过密码登录,怎么修改mysql密码

时间:2023-05-04 17:08:55 阅读:23671 作者:2131

今天,朋友的服务器登录phpmyadmin时提示1045错误,进入ssh后登录数据库仍然是1045错误。 在网上找了各种各样的方法,但都没有成功。

提示如下。

错误1045 (28000 ) : accessdeniedforuser ' root ' @ ' localhost ' (using password :是)。

首先考虑的是进入安全模式,重置密码。 没有成功,但附上方法:

1、禁用mysql服务:

/etc/rc.d/init.d/mysqld stop

或者是的

服务mysqld stop

2、输入命令:

mysqld _ safe---- user=MySQL---- skip-grant-tables---- skip-networking

在某些环境下可能行不通。 系统将提示您访问和执行mysql安装目录

找到安装目录。 我的示例目录是一键安装软件包,常见于阿里服务器/alidata/server/mysql。

命令的格式如下。

/alidata/server/mysql/温软的大树/mysqld _ safe---- user=MySQL---- skip-grant-tables-- skip-networking

3、登录数据库:

请特别注意这个地方。 请务必新建ssh窗口并登录此服务器

mysql -u root mysql

不使用密码直接访问mysql

4、进入mysql

use mysql;

结果如下。

数据库更改

5、更改根密码:

更新用户集密码=密码(新密码) WHERE User='root );

结果如下。

查询确定,3Rowsaffected(0.00sec ) rows matched :3 changed :3 warnings :

刷新数据库

flush权限;

结果如下。

查询确定,0Rowsaffected(0.00sec ) )。

在用mysql操作的所有命令后面加上“; 请不要忘记有”。

最后退出

mysql quit

重新启动mysql

/etc/rc.d/init.d/mysqld restart

或者是的

service mysqld restart

用root登录mysql

MySQL-urootp

Enter password:新密码

成功登录!

接下来要说的方法是以上方法不成功时的解决方法。 这才是这篇文章的重点。

也不是新方法,很多人实际上能做到。

1 .首先确保服务器处于安全状态,即任何人都不能任意连接到MySQL数据库。 因为在更改过程中,任何人都可以登录mysql并更改用户密码。

我的方法是停止apache或nginx服务。

编辑my.cnf文件

vi /etc/my.cnf

如下图所示。

在[mysqld]的启动选项中添加skip-grant-tables实际上是跳过许可证表。

原始代码如下。

[客户端]

端口=3306

socket=/tmp/mysql.sock

[mysqld]

端口=3306

socket=/tmp/mysql.sock

跳过外部锁定

log-error=/alidata/log/MySQL/error.log

key_buffer_size=16M

max_allowed_packet=1M

table_open_cache=64

sort_buffer_size=512K

net_buffer_length=8K

read_buffer_size=256K

read_rnd_buffer_size=512K

myisam_sort_buffer_size=8M

修改后如下。

[客户端]

端口=3306

socket=/tmp/mysql.sock

[mysqld]

端口=3306

socket=/tmp/mysql.sock

脚本授权表

#skip-external-locking

log-error=/alidata/log/MySQL/error.log

key_buffer_size=16M

max_allowed_packet=1M

table_open_cache=64

sort_buffer_size=512K

net_buffer_length=8K

read_buffer_size=256K

read_rnd_buffer_size=512K

myisam_sort_buffer_size=8M

原始文件中有skip-external-locking。 前面加了#进行了评论。

是的,退出并保存

:wq!

重新启动mysqld

service mysqld restart

结果如下。

stopping MySQL : [确定]

开始MySQL : [确定]

登录并更改MySQL的根密码

mysql

结果如下。

welcometothemysqlmonitor.command send with; or g。

yourmysqlconnectionidis3toserver版本:3.23.56

类型' help;' or 'h ' forhelp.type 'c ' toclearthebuffer。

use mysql;

结果如下。

数据库更改

更改根密码:

更新用户集密码=密码(新密码) WHERE User='root );

结果如下。

查询确定,3Rowsaffected(0.00sec ) rows matched :3 changed :3 warnings :

刷新数据库

flush权限;

结果如下。

查询确定,0Rowsaffected(0.00sec ) )。

撤消MySQL登录设置

vi /etc/my.cnf

删除刚才添加到[mysqld]段落的skip-grant-tables,撤消注释部分。

保存并退出vi

重新启动mysqld

service mysqld restart

stopping MySQL : [确定]

开始MySQL : [确定]

开始上次停止的服务

服务httpd restart

服务nginx restart

那么,进入phpmyadmin就再也没有1045条提示了!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。