Выполненный MySQL Workbench как типичный пользователь

Я установил пакеты mysql-сервера и mysql-инструментальных-средств. Все, кажется, хорошо работает, но когда я пытаюсь соединиться с базой данных через mysql-инструментальные-средства, я не могу, кроме того, если я запускаю mysql-инструментальные-средства через cli с командой

sudo mysql-workbench

Я проверил другие сообщения, в которых было сказано, что это поведение зависит от другого типа аутентификации, данной mysql пользователю root (auth_socket), но также и если я изменяю аутентификацию для пользователя root к mysql_native_pasword, я могу соединиться с сервером базы данных, только если я запускаю Инструментальные средства как суперпользователь.

1
задан 21 November 2019 в 17:38

2 ответа

На Linux, для установок, выполненных с помощью репозитория MySQL или RPM-пакетов, сервер MySQL mysqld должен быть запущен локальным mysql пользователем операционной системы. Запуск другим пользователем операционной системы не поддерживается init сценариями, которые включены как часть репозиториев MySQL.

На Unix (или Linux для установок, выполненных с помощью tar.gz пакеты), сервер MySQL mysqld может быть запущен и выполнен любым пользователем. Однако необходимо постараться не выполнять сервер как пользователь root Unix из соображений безопасности. Для изменения mysqld для выполнения как нормальный непривилегированный пользователь UNIX user_name необходимо сделать следующее:

Остановите сервер, если он работает (используйте завершение работы mysqladmin). Измените каталоги базы данных и файлы так, чтобы user_name имел полномочия считать и записать файлы в них (Вы, возможно, должны были бы сделать это как пользователь root Unix):

shell> chown -R user_name /path/to/mysql/datadir

Если Вы не сделаете этого, то сервер не сможет получить доступ к базам данных или таблицам, когда он будет работать как user_name.

Если каталоги или файлы в рамках каталога данных MySQL являются символьными ссылками, показанный-R не мог бы перейти по символьным ссылкам для Вас. Если это не сделает, то необходимо будет также перейти по тем ссылкам и изменить каталоги и файлы, на которые они указывают.

Запустите сервер как пользователя user_name. Другая альтернатива должна запустить mysqld как пользователя root Unix и использовать - user=user_name опция. mysqld запускается, затем переключается для выполнения как пользователь UNIX user_name прежде, чем принять любые соединения.

Для запуска сервера как данного пользователя автоматически в системное время запуска укажите имя пользователя путем добавления пользовательской опции к [mysqld] группе/etc/my.cnf файла опции или my.cnf файла опции в каталоге данных сервера. Например:

[mysqld]
user=user_name

Если Ваша машина Unix сама не защищается, необходимо присвоить пароли корневой учетной записи MySQL в таблицах предоставления. Иначе любой пользователь с учетной записью на той машине может выполнить mysql клиент с - user=root опция и выполнить любую операцию. (Это - хорошая идея присвоить пароли учетным записям MySQL в любом случае, но особенно поэтому, когда другие учетные записи существуют на хосте сервера.)

Текст прибывает из https://dev.mysql.com/doc/refman/8.0/en/changing-mysql-user.html. Я не уверен, относится ли это к пользователям MySQL или пользователям Ubuntu. Я надеюсь, что это, по крайней мере, помогает

0
ответ дан 21 December 2019 в 23:52

необходимо войти в mysql и дать разрешение для типичного пользователя

mysql> select * from mysql.user;

это перечислит пользователей,

Следуйте этому сообщению для Установки Полномочий

Как предоставить все полномочия на базе данных в MySQL

-1
ответ дан 21 December 2019 в 23:52

Другие вопросы по тегам:

Похожие вопросы: