it-swarm.com.ru

Mysql работает с Sudo, но без. (Ubuntu 16.04, MySQL 5.7.12-0ubuntu1.1)

У меня есть Ubuntu 16.04 и Mysql 5.7.12-0ubuntu1.1. Когда я печатаю:

Sudo mysql -u root

Я могу войти в консоль mysql, но когда я набираю ее без Sudo:

mysql -u root

Я получаю ошибку: 

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

Моя проблема возникла, когда я установил и удалил MariaDB. Я помню, что в PostgreSQL важно, какой пользователь unix входит в базу данных, но как справиться с этим в Mysql?


Я решил эту проблему следующим образом:

https://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04

14
Daniel

Решение состоит в том, чтобы предоставить пароль для учетной записи root mysql (если вы этого еще не сделали). Вы получаете сообщение об ошибке, потому что требуется пароль, а вы его не предоставили. Сбросить пароль root с помощью:

$ mysqladmin -u root password
$ New password: 

или если вы уже установили пароль root (в чем я сомневаюсь, иначе вы не сможете войти через Sudo), тогда это будет

$ mysqladmin -u root -p  password

Пользователи Mysql не связаны с пользователями Unix, в отличие от postgres.

3
Simon Woolf

Эта проблема, по-видимому, в первую очередь вызвана плагином auth_socket, который теперь используется по умолчанию, если у пользователя root нет пароля. (Ранее процесс установки apt-get запрашивал пароль для пользователя root, но, похоже, он этого больше не делает, поэтому auth_socket включается.)

Для любого запроса сначала войдите в систему как root с помощью Sudo mysql

Для MySQL или MariaDB> = 10.2:

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

Для других, которые могут использовать MariaDB <10.2 (которая не поддерживает ALTER USER), вы захотите выполнить этот запрос:

    SET PASSWORD = PASSWORD('test');
    update mysql.user set plugin = 'mysql_native_password' where User='root';
    FLUSH PRIVILEGES;
6
Loren

Версия сервера: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

Шаг 1:

 [email protected]:~$ Sudo -i

Шаг 2:

 [email protected]:~# mysql

Вывод выглядит так:

 [email protected]:~$ Sudo -i
 [Sudo] password for server: 
 [email protected]:~# mysql
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 16
 Server version: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

 Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

 Oracle is a registered trademark of Oracle Corporation and/or its
 affiliates. Other names may be trademarks of their respective
 owners.

 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Шаг 3:

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[email protected]';

Результат:

 Query OK, 0 rows affected (0.00 sec)
1
Sams

Пожалуйста, попробуйте следующую команду:

mysql -uroot -p[password]

[пароль] - введите пароль, который вы установили при установке mysql.

Вы также можете попробовать:

Sudo mysql -uroot -p[password]
0
Sree