惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
H
Help Net Security
GbyAI
GbyAI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
Y
Y Combinator Blog
L
LangChain Blog
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
D
Docker
Jina AI
Jina AI
罗磊的独立博客

似水流年

Linux下查看CPU架构是否支持V3 VestaCP安装Memcached拓展 Centos下Vestacp面板安装Zend Opcache Ubuntu下安装Zend Opcache CentOS下VestaCP安装PHP-redis、redis VestaCP安装Xcache Centos下Vestacp安装IoncubeLoader 解决npm编译过程中内存溢出错误(ELIFECYCLE Command failed with exit code 134.) npm更换国内淘宝镜像源,权当记录 Windows 11关闭小工具信息流(资讯)的办法 同一服务器下,不同WordPress站点使用同一个Redis库方法 博客用上了阿里云自研云原生数据库PolarDB PHP8.0.X安装fileinfo扩展方法 博客服务器迁移记录 设备安全性中内核隔离提示安全风险记录 急诊室故事 第二季结尾精彩文案分享 Windows11还原Windows10任务栏(任务栏不合并)及开始菜单(磁贴)小工具 宝塔(BT)面板爆出重大安全漏洞,安全等级高,利用难度0(漏洞已由官方修复) Google Chrome用户福音,直接即可更新最新版 腾讯云CDB基础版使用之新建用户及数据库的方法 Windows Defender快速扫描一直提示有1个威胁(根源来自支付宝安全控件),但是无任何记录修复过程 PHPStorm更新到2019.3后设置自动换行的方法 Adobe Photoshop CC 2019中自由变换等比例缩放修改办法 Windows10 1909清除Windows安全中心(Windows Defender)历史记录的办法 Ubuntu下PHP7.2安装Mcrypt扩展方法 Centos下PHP7.2安装Mycrpt扩展的方法 Centos7下Vestacp面板简单升级PHP7.X方法 “轻’”而不“薄”的轻量应用服务器初使用体验 这就是命 WindowsServer2008配置IIS+PHP环境第五讲-安装WordPress和Discuz
Mysql密码忘记修改办法,解决登陆mysql1045问题
2017-11-14 · via 似水流年

今天一个朋友的服务器在登陆phpmyadmin的时候提示1045错误,然后进入ssh后登陆数据库仍是1045错误。网上找了各种办法都不成功。

提示如下:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

首先我想到的是进入安全模式进行密码重置,虽没有成功, 但我还是附上方法:

1、停用mysql服务:

/etc/rc.d/init.d/mysqld stop
或者是
service mysqld stop

2、输入命令:

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

根据环境不同可能会不成功,提示你要进入mysql安装目录进行

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

命令格式如下:

/alidata/server/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3、登入数据库:

这个地方特别注意一下,一定要新建一个ssh窗口,登陆这台服务器

mysql -u root mysql

没有密码直接进入mysql

4、进入mysql

 use mysql;

结果如下:
Database changed

5、更改root密码:

UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root';

结果如下:

Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
刷新数据库

FLUSH PRIVILEGES;

结果如下:
Query OK, 0 rows affected (0.00 sec)
千万不要忘记在mysql中操作的每条命令后面都要有“;”的。

最后退出

mysql> quit

重启mysql

/etc/rc.d/init.d/mysqld restart
或者是
service mysqld restart

用root登陆mysql

mysql -uroot –p
Enter password:新密码

登陆成功!

下面我要说的方法是上面这种方法不成功的时候的解决办法,这个才是本文的重点!

也不是什么新方法,很多人其实也都会的。

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在修改的过程中任何人都可以登陆mysql修改用户密码的。

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

2.编辑 my.cnf文件

vi /etc/my.cnf

如下图所示:

我们在[mysqld]的启动选项里面加入 skip-grant-tables 其实就是跳过授权表。

原代码如下:

[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 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

修改后如下:

[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-grant-tables
#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!

3.重新启动mysqld

service mysqld restart

结果如下:
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码

mysql

结果如下:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 use mysql;

结果如下:
Database changed

更改root密码:

UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root';

结果如下:

Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
刷新数据库

FLUSH PRIVILEGES;

结果如下:
Query OK, 0 rows affected (0.00 sec)

5.将MySQL的登录设置修改回来

vi /etc/my.cnf

将刚才在[mysqld]的段中加上的skip-grant-tables删除,并把注释的部分改回来。
保存并且退出vi

6.重新启动mysqld

service mysqld restart

Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

最后启动刚才停止的服务

service httpd restart
service nginx restart

好了,进入phpmyadmin不再有1045提示了!

微信扫描下方的二维码阅读本文

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,转载请联系作者。
文章名称:《Mysql密码忘记修改办法,解决登陆mysql1045问题》
文章链接:https://wangjunwei.com/linux/centos/45.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。