Подключение к серверу mysql без sudo
Команда:
mysql -u root -p
дает ошибку:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Но выполняемые привилегии sudo работают:
sudo mysql -u root -p
Можно ли избавиться от требования sudo, потому что это мешает мне открывать базу данных в intellij? Я попробовал следующее, как в ответе на этот вопрос Подключиться к локальному MySQL-серверу без sudo:
sudo chmod -R 755 /var/lib/mysql/
что не помогло. Вышеупомянутый вопрос имеет другую ошибку, сброшенную
Ответы
Ответ 1
Только пользователю root требуется требование sudo для входа в mysql. Я решил эту проблему, создав нового пользователя и предоставив доступ к необходимым базам данных:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
Теперь newuser
может войти без требования sudo:
mysql -u newuser -p
Ответ 2
Вам нужно изменить алгоритм. После работы для меня,
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
Ответ 3
сначала войдите в свой mysql с помощью sudo.
то используйте этот код, чтобы изменить значение "плагин" coloumn с "unix_socket" на "mysql_native_password" для пользователя root.
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
наконец, перезапустите службу mysql. что он.
если вы хотите получить дополнительную информацию, отметьте эту ссылку
Ответ 4
Вы можете использовать того же пользователя ROOT или NEW_USER и удалить привилегии SUDO. Ниже пример показывает, как удалить подключение с помощью ROOT, без SUDO.
Подключение к MY-SQL с помощью SUDO
sudo mysql -u root
Удалить текущего пользователя Root из таблицы пользователей
DROP USER 'root'@'localhost';
Создать нового пользователя ROOT (при необходимости вы можете создать другого пользователя)
CREATE USER 'root'@'%' IDENTIFIED BY '';
Предоставить разрешения новому пользователю (ROOT)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Сбросьте привилегии, чтобы таблицы Grant были немедленно перезагружены. (Зачем нам нужно сбрасывать привилегии?)
FLUSH PRIVILEGES;
Теперь все хорошо. На всякий случай проверьте, создан ли новый пользователь root.
SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
Выход из MySQL. (Нажмите CTRL + Z). Подключитесь к MySQL без SUDO
mysql -u root
Надеюсь, это поможет!
Ответ 5
Вы можете использовать следующий запрос:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
Этого запроса достаточно.
Ответ 6
В ответе на вопрос, на который вы ответили, вы читаете
Хорошо, попробуйте проанализировать все каталоги на пути к файл сокета, они должны иметь o + rx и файл с носками (это не хорошая идея сделать его модифицируемым другими).
Вы также можете попытаться удалить mysql.sock, а затем перезапустить mysqld, файл должен быть создан демонами с соответствующими привилегиями.
Это, казалось, работало для этого вопроса (тот, который вы сказали, на который вы смотрите), чтобы он мог работать и для вас.
Ответ 7
Я решил эту проблему с помощью следующих команд.
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
FLUSH PRIVILEGES;
Здесь
username
= любое имя пользователя, которое вам нравится.
и password
= любой пароль, который вам нравится.
Ответ 8
Сообщение об ошибке:
"ОШИБКА 1698 (28000): доступ запрещен для пользователя 'root' @'localhost'"
означает, что сервер не разрешает подключение для этого пользователя, а не ту mysql не может получить доступ к сокету.
попробуйте решить эту проблему:
Войдите в свою БД
sudo mysql -u root -p
затем выполните следующие изменения:
MariaDB []>use mysql;
MariaDB [mysql]>update user set plugin=' ' where User='root';
MariaDB [mysql]>flush privileges;
MariaDB [mysql]>exit
попробуйте снова войти в систему без sudo