I setup a password for Mariadb when I ran sudo mysql_secure_installation
but when I try to run mariadb with mysql -u root -p
I get the following error.
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
I am on Ubuntu 18.04 on AWS's Lightsail VPS. I am using Mariadb version 10.1.44-MariaDB-0ubuntu0.18.04.1
.
MariaDB [mysql]> SELECT user,plugin,host FROM mysql.user;
+---------------+-------------+-----------+
| user | plugin | host |
+---------------+-------------+-----------+
| root | unix_socket | localhost |
| wordpressuser | | localhost |
+---------------+-------------+-----------+
Secondly, I am confused about what is the proper way to setup and use Mariadb.
mysql_secure_installation
?sudo mysql
or mysql -u root -p
?I can setup a password as instructed on JournalDev but I was wondering what is the right way to do it.
$ mysql -u root -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user SET PASSWORD=PASSWORD("Passw0rd!") WHERE USER='root';
Прочитайте здесь, чтобы ответить на все ваши вопросы: Плагин аутентификации - Unix Socket
По сути, по умолчанию корневая учетная запись mysql защищена с помощью плагина unix_socket
, так что только пользователь root Ubuntu может войти в систему пользователя корневой базы данных. Поэтому sudo mysql -u root mysql
должен работать, но mysql -u root mysql
как пользователь без полномочий root не будет.
Можно изменить это поведение и использовать аутентификацию по паролю, если вам действительно нужно (см. связанную статью), но вы , возможно, делаете вашу базу данных менее защищенной. Это действительно зависит от вашего варианта использования и потребностей.