Debian和Ubuntu系统MySQL无法登录的解决方案

问题描述

终端输入 :
   $ mysql -u root -p
一直显示
   access denied for user root @localhost

解决方法

  网上找了很多解决办法都没用,这里介绍我自己想的解决这个问题的方法:
终端输入
   $ sudo cat /etc/mysql/debian.cnf
会显示以下内容:
Debian和Ubuntu系统MySQL无法登录的解决方案_第1张图片
  debian-sys-maint用户是系统自动生成的mysql用户,debian和ubuntu系统都会这样做,密码在安装的时候随机生成的,建议不要更改。
   用这个账号密码登录后,进入数据库mysql 查看user表,输入以下sql语句:
    use mysql;
    select user,host,authentication_string from user;
Debian和Ubuntu系统MySQL无法登录的解决方案_第2张图片
  会看到mysql的用户信息,高版本的mysql 的密码字段变成了authentication_string 而不是password,我的root用户的密码为空,但是登不进去,一直显示access denied for user root @localhost 然后我利用debian-sys-maint 这个用户创建了一个新用户,并赋予了所有权限,sql语句如下:
    create user ‘root0’@’localhost’ identified by ‘密码’;
    grant all privileges on . to ‘root0’@’localhost’ ;
  这样就创建了一个拥有所有权限的root0用户,可以和root用户一样拥有所有权限,如果有强迫症你还可以把root用户删掉再把root0用户名改成root,完美解决问题。

你可能感兴趣的:(项目后台)