ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Some systems like Ubuntu, mysql is using by default the UNIX auth_socket plugin.html

Basically means that: db_users using it, will be "auth" by the system user credentias. You can see if your root user is set up like this by doing the following:mysql

$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> SELECT User, Host, plugin FROM mysql.user; +------------------+-----------------------+ | User | plugin | +------------------+-----------------------+ | root | auth_socket | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+

As you can see in the query, the root user is using the auth_socket pluginsql

There are 2 ways to solve this:socket

  1. You can set the root user to use the mysql_native_password plugin
  2. You can create a new db_user with you system_user (recommended)

Option 1:this

$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart
相關文章
相關標籤/搜索