zoukankan      html  css  js  c++  java
  • 安装mysql-server之后,root用户不能登录问题

    解决步骤:

    step1

    mysql -u root -p  # 报错
    # 报错信息……
    

    step2

    sudo cat /etc/mysql/debian.conf    # 查看此文件内debin-sys-maint用户的信息,这是系统自动生成的
    mysql -u debin-sys-maint -p        # 用debin-sys-maint 登录mysql,密码在debin.conf里面
    

    step3 修改root用户的密码

    参考mysql查看数据库、表的基本命令

    mysql> show databases;    # 显示数据库列表
    mysql > use mysql;    # 进入mysql这个数据库
    mysql> show tables;    # 显示表;
    mysql> update user set authentication_string=PASSWORD("这里填要修改的密码") where user='root' and Host='localhost'
    

    step4

    $ mysql -u root -p
    # 权限拒绝,不能访问mysql
    $ sudo service mysql restart     # 这样也不行
    再次执行step2、step3
    mysql> use mysql;
    mysql> select * from user;    # 一堆信息,尝试找出我们可能需要的列
    mysql> select User, plugin, authentication_string, account_locked, password_expired, password_last_changed from user;
    # 可以看到用户root的plugin值为auth_socket,其他用户的plugin值都为mysql_native_password
    # 此时,找到root用户不能登录mysql的原因:
    # root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用root权限登录就不用密码,修改root密码和登录验证方式。
    # 所以,之前我仅仅是更改了root用户的密码,但是root用户的登录验证方式还是auth_socket的,
    # 所以,要更改root账户认证模式
    mysql> update user set authentication_string=PASSWORD('密码'), plugin='mysql_native_password' where user='root';
    mysql> flush privileges;
    mysql> exit;
    # 重启mysql-server
    $ sudo service mysql restart
    

    附录

    # flush privileges 什么意思
    # mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­
    
    # 检查mysql是否运行
    sudo netstat -tap | grep mysql
    
    # 删除MySQL的方法
    sudo apt-get autoremove --purge mysql-server-5.7
    sudo apt-get remove mysql-server
    sudo apt-get autoremove mysql-server
    sudo apt-get remove mysql-common
    # 上面的可能会有些是多余的,之后需要清理残余数据
    dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
    
    # 配置root远程登陆
    mysql> grant all on *.* to root@'%' identified by '密码' with grant option;
    mysql> flush privileges;
    mysql> exit;
    

    Windows10 忘记 mysql 5.7 的root密码的解决办法:

    64位 windows10,MYSQL8.0.13重置密码(忘记密码或者无法登录)
    期间,如果想要删除mysql 8.0 service ,
    输入sc query mysql,查看一下名为mysql的服务
    输入sc delete mysql,删除该mysql

  • 相关阅读:
    页面的三大家族
    封装函数
    图片自动播放的案例
    动画封装
    长图滚动案例+点名册案例
    时钟案例
    伪随机数,随机数种子seed
    numpy.tolist( )函数
    countif( ) 函数判断当前单元格的身份证号码是否重复出现
    Excel技巧
  • 原文地址:https://www.cnblogs.com/daemonFlY/p/10917707.html
Copyright © 2011-2022 走看看