在 ubuntu 16.04中,mysql不能以root用户帐户登录

分享于 

3分钟阅读

ubuntu

  繁體

首先,在sudo中连接mysql


sudo mysql -u root



检查你的数据库中的帐户


SELECT User,Host FROM mysql.user;


+------------------+-----------+


| User | Host |


+------------------+-----------+


| admin | localhost |


| debian-sys-maint | localhost |


| magento_user | localhost |


| mysql.sys | localhost |


| root | localhost |



删除当前root localhost帐户


mysql> DROP USER 'root'@'localhost';


Query OK, 0 rows affected (0,00 sec)



重新创建用户


mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';


Query OK, 0 rows affected (0,00 sec)



向用户授予权限(不要忘记刷新权限)


mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;


Query OK, 0 rows affected (0,00 sec)



mysql> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0,01 sec)



退出MySQL并尝试不使用sudo重新连接。


如果你安装5.7,并且不为root用户提供密码,它会使用auth_socket插件,插件不需要密码,它只是检查用户是否使用UNIX套接字连接,然后比较用户名。

为了将plugin更改为mysql_native_password

使用sudo登录:


sudo mysql -u root



更改plugin并使用单个命令设置密码:


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';



当然,你也可以使用上面的命令设置一个空密码。

就记录而言,(和MariaDB < 10.2用户)还有另一种方法可以只更改plugin而不提供密码(空了):


update mysql.user set plugin = 'mysql_native_password' where User='root';


// to change the password too (credits goes to Pothi Kalimuthu)


// UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';


FLUSH PRIVILEGES;





USE  acc  用户  log  Ubuntu  CAN  
相关文章