连接MySQL报错误代码 ERROR 1045时的解决方案
2024-09-05 11:46:07
最近在做网站迁移的时候,遇到了一件很尴尬的事情,远程连接数据连不上了,一直报 错误号码1045 Access denied for user 'root'@xx.xxx.xxx.xx(using password:YES) 远程登录被拒绝
尝试通过阿里云自带的远程连接登录,依然是拒绝访问,这下凉凉了,如果这个问题解决不掉,不光是网站迁移完成不了,之前存的数据也保存不下来了。难道只能趁着夜黑风高天里跑路?怎么可能~~
度娘谷哥了一圈,解决办法也有而且都差不多(很多都是一字不差的复制),基本步骤是
1:停止MySQL服务器(一般在/etc/init.d/mysql)
2:设置MySQL跳过权限验证并启动
3:更新远程登录权限并刷新
4:重启服务器
如果是正常配置的服务器,找到mysql并且停止它,是一件非常容易的事情,但是,作为一台经过了几次交接,基本上没有使用文档的服务器,那就很伤脑筋了。反正我找了很久都没有找到mysql装在了哪里,从哪里启动。
注意:以下操作为非常规操作,且涉及到重启服务器,改配置等危险操作,如果不是自己的服务器或者服务器网站特重要的,不建议尝试,以免被项目经理打出屎...
尝试使用网上给出的命令关闭MySQL服务器,关闭失败,只能强行kill掉进程,然后使用命令 mysqld_safe --skip-grant-tables & 没有成功,报找不到 mysqld_safe
没有办法,只能想办法改配置文件了,在/etc文件夹下,找到my.cnf文件,对其进行修改,在[mysqld]下添加 skip_grant_tables 让MySQL在运行的时候可以跳过权限,直接登录。
所以?找不到MySQL要怎么重启呢?幸亏这个服务器目前只挂了一个访问量很小的官网,利用服务器重启后MySQL也会自启的特性,我在后台直接重启了服务器。
so?我成功了,服务器重启后,MySQL也启动了,直接输入命令 mysql 回车,绕过权限进入数据库成功。
后面的操作就比较简单了,
先使用命令 flush privileges; 刷新数据库系统权限
然后使用命令
GRANT ALL PRIVILEGES ON *.* TO 'manage'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
新增一个manage用户用于远程访问。
退出MySQL服务器后,将/etc/my.cnf文件中的 skip_grant_tables 注释掉,再次重启服务器
一顿骚操作之后,再次尝试远程连接数据库,连接成功~~
啊~今天又很坚强的活了下来~~
最新文章
- HDU 4280:Island Transport(ISAP模板题)
- 用cxf开发restful风格的WebService
- [Topcoder]AvoidRoads(dp,hash)
- POI导出数据内存溢出问题
- JavaScript中的声明提升
- QtXlsxWriter
- SQL随机生成数值字符
- shell编程其实真的很简单(五)
- poptest老李谈数据结构中深度优先和广度优先
- 5.Lock接口及其实现ReentrantLock
- 10亿美元融资腾讯跟头,Grail要用基因测序做癌症早期筛查
- I/O复用中的 select poll 和 epoll
- lgp20151222 java中如何将Object类型转换为int类型
- Redis之(五)持久化
- java死锁小例子
- LEDAPS1.3.0版本移植到windows平台----HuPm参数初始化模块
- IP通信基础的第一个星期
- map获取数字与int比较
- oracle11g处理空表
- ORA-12801/ORA-12853: insufficient memory for PX buffers: current 274880K, max needed 19722240K/ORA-04031解决方法