• windows linux 下安装mysql 报1045 等错误


    曾经在windows 下安装mysql 没怎么出现过问题。而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误。就个人经历来看这个问题就是 root用户password的问题,所以将解决的方式总结例如以下:

    一、mysql登录报 1045 错误

    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: YES)'

    我们看到上面的这个错误就是说 user 为root host为localhost的password有问题,所以我们就要看看 mysql数据库中user表中user为root,host为localhost的这个用户的password。

    解决的方法:破解mysqlpassword

    1、 service mysqld stop  

    // 停止mysql服务

    2、mysqld_safe --skip-grant-tables

     // 在mysql的配置文件假设是linux(centos)则在etc/my.cnf配置文件的mysqld_safe 下天加入skip-grant-tables,假设在windows下则在安装文件夹下的my.ini 配置文件的mysqld 下加入  skip-grant-tables, skip-grant-tables是跳过授权表这样配置之后保存 关闭,又一次启动mysql服务

    3、 mysql -uroot -p  回车

    // 这样就进来了,这里有两个问题。也是我遇到的两种情况,一种是user表中有user为root的用户。一种是没有,假设有则进行例如以下处理:

    (1)、use mysql;

    // 使用mysql数据库


    (2)、 delete  from user where host="localhost" and user=" ";

    // 将host为localhost下的user为空的用户都删了。事实上也能够把这里localhost改成 % 免得以后连接的时候连接不了,只是是后话在这里该不该都能够。

    (3)、 update user set password=PASSWORD("newpass") where user="root";
    // 假设你查询一下你会发现 mysql中的password是加密保存的,所以改动password不能向平时的sql一样 而要使用password("新password")keyword来改动password。新password为password中的字符。

    (4)、 flush tables;

    //数据刷到磁盘


    (5)、 flush privileges;

    //更新权限


    (6)、quit

    //退出

    (7)、将配置文件里 skip-grant-tables 凝视/删掉 保存

    (8)、service mysqld restart 

    // 再次启动服务   mysql -uroot -p新password回车 。这样应该能够了

    二、 接着上面3、mysql -uroot -p  回车 进入之后use表中没数据,即创建root用户做例如以下处理:

    第一种情况,就是user中有root用户可是连接不上是在windows下遇到的,而user中什么都没有是在linux(centos) 下遇到的,详细处理例如以下:


    在linux下安装了mysql之后出现错误,刚開始以为就是第一种这样的情况,网上大多也都是这类文章于是就依照这篇文章进行了改动:linux下mysql 初次登陆改动password  改动之后应该没错,但再次启动服务root登录还是不行,以下的就是出现的问题和解决过程:

    1、查询看有没有user 为root的用户,或这说user中有没实用户。

    mysqld_safe--skip-grant-tables&mysql-uroot mysql
    mysql> select * from user;
    Empty set (0.00 sec)
    mysql> select USER();
    +--------+
    | USER()|
    +--------+
    | root@ |
    +--------+
    1 row in set (0.00 sec)

    结果是没有root用户,user表里面是空的。还是第一次遇到这样的问题的。

    2、插入用户信息到 user表
    因为 mysqld_safe --skip-grant-tables里面是不能用grant的,于是想到了手动insert插入root用户:

    **为了大家方便这里提供一些说明:第一个值是host,第二个为user这两项是必填项,password("my_password")这里进行密码的设置。MY_PASSWORD 就是新设的密码 ,而'Y'有28个。之后有1个enum和3个blob 能够为空,也就是这里的4个空字符,int类型有4个,默认值为0

    INSERTINTO user VALUES('%','root',password('MY_PASSWORD'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0)

    这里要基本的是第3个字段password处要用password('password')。由于mysql中password是要经过编码的,不是直接字符串保存的。

    3、接着在杀掉全部mysql进程。之后正常重新启动mysql,就可以用root用户登录


    到眼下个人就遇到的问题总的就这两种,希望对你实用!!




  • 相关阅读:
    Mac上使用Charles抓取https
    使用react-navigation 报错isMounted
    create-react-app创建出来项目,如何设置CSS模块化?
    Markdown 常用语法整理
    Git安装和使用
    页面重定向跳转
    AntDesign 踩坑大全
    js实现数组、对象深度克隆的两种办法
    wamp中mysql安装时能启动,重启后无法启动的解决办法
    前端开发工具收藏
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6755509.html
Copyright © 2020-2023  润新知