• 连接MySQL报错误代码 ERROR 1045时的解决方案


            最近在做网站迁移的时候,遇到了一件很尴尬的事情,远程连接数据连不上了,一直报 错误号码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 注释掉,再次重启服务器
     
            一顿骚操作之后,再次尝试远程连接数据库,连接成功~~
     
            啊~今天又很坚强的活了下来~~
     
     
     
  • 相关阅读:
    让一个 csproj 项目指定多个开发框架
    推荐近乎免费的调试神器——OzCode
    再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录
    .NET Core 和 .NET Framework 中的 MEF2
    将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件
    .NET 中的轻量级线程安全
    卡诺模型(KANO Model)
    C#/.NET 匿名函数会捕获变量,并延长对象的生命周期
    迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference)
    异步任务中的重新进入(Reentrancy)
  • 原文地址:https://www.cnblogs.com/zhengchenhui/p/11469595.html
Copyright © 2020-2023  润新知