Почему я должен использовать & ldquo; sudo & rdquo; при запуске mysql? [Дубликат]

-m 1 означает возврат первого совпадения в любой файл. Но он по-прежнему будет продолжать поиск в других файлах. Кроме того, если в одной строке есть два или более, все они будут отображаться.

Вы можете использовать head -1 для решения этой проблемы:

grep -o -a -m 1 -h -r "Pulsanti Operietur" /path/to/dir | head -1
123
задан Folkmann 1 September 2016 в 22:06
поделиться

6 ответов

Причина в том, что недавняя установка Ubuntu (может быть, и другие), mysql использует по умолчанию плагин UNIX auth_socket .

В основном означает, что: db_users, используя его , будет «auth» с помощью системных пользовательских credentias. Вы можете увидеть, настроен ли ваш пользователь root следующим образом:

$ 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 |
+------------------+-----------------------+

Как вы можете видеть в запрос, пользователь root использует плагин auth_socket

. Есть два способа решить эту проблему:

  1. Вы можете настроить пользователя root на использование кнопки mysql_native_password плагин
  2. Вы можете создать новый db_user с вами system_user (рекомендуется)

Вариант 1:

$ 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

Вариант 2: (замените YOUR_SYSTEM_USER своим именем пользователя)

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Помните, что если вы используете опцию № 2, вам нужно будет подключиться к mysql в качестве имени вашей системы (mysql -u YOUR_SYSTEM_USER)

Примечание. В некоторых системах (например, Debian stretch) плагин auth_socket называется 'unix_socket' , поэтому соответствующая команда SQL должна быть: UPDATE user SET plugin='unix_socket' WHERE User='YOUR_SYSTEM_USER';

352
ответ дан SergiyKolesnikov 18 August 2018 в 04:09
поделиться
  • 1
    Вариант 1 работал для меня. Но тогда мне также нужно было запустить sudo gedit /etc/phpmyadmin/config.inc.php. Затем я выполнил поиск по AllowNoPassword и раскомментировал обе строки, которые содержали его. Тогда я смог войти в систему как root без пароля. – Joe 27 September 2017 в 15:46
  • 2
    только вариант 1 работает. – YaSh Chaudhary 5 December 2017 в 15:54
  • 3
    Это сообщение в блоге percona помогло мне немного. percona.com/blog/2016/03/16/… Похоже, это происходит, если вы попытаетесь пропустить настройку пароля для root, что затем заставляет auth_plugin использовать unix auth_socket, который по-видимому, просто сравнивает пользователей. – Josh Brown 19 December 2017 в 03:42
  • 4
    Вариант 2 работает. Я думаю, что его всегда лучшая практика для создания нового пользователя и использования оставления root там! – Pasindu Jayaweera 13 February 2018 в 07:02
  • 5
    Наконец, ответ, что действительно работает !! Там есть миллион ответов, говорящих mysqld_safe --skip-grant-tables и т. Д., И он не работает. – Stewart 12 May 2018 в 10:20
  • 6

Первый шаг: перейдите в /etc/phpmyadmin/config.inc.php, затем раскомментируйте строки, где вы найдете AllowNoPassword. Второй шаг: войдите в свою учетную запись по умолчанию mysql

mysql -u root -p
use mysql;
update user set plugin="" where user='root';
flush privilege;

, и это все!

0
ответ дан Ángel Ugarte 18 August 2018 в 04:09
поделиться

Вы хотите получить доступ к MySQL с помощью пользователя root, но вы не указали правильный пароль root.

Если вам нужно установить новый пароль для root, на сайте MySQL есть отличная документация о том, как это сделать: http://dev.mysql.com/doc/refman/5.7/ru/resetting-permissions.html

Я не буду показывать процесс здесь, потому что в документации по MySql приведенная выше ссылка понятна и кратким.

0
ответ дан Cristian Gonçalves 18 August 2018 в 04:09
поделиться
  • 1
    Спасибо за ответ, но я не мог заставить его работать, поэтому я решил установить iRedMail с помощью базы данных pgSQL. – Folkmann 2 September 2016 в 15:55
  • 2
    Роджер Фолькман! Приятно знать, что вы как-то решили свою проблему. – Cristian Gonçalves 2 September 2016 в 16:15
  • 3
    Разрыв ссылок. На протяжении многих лет у mysql.com было много сломанных ссылок. Вы должны скопировать и вставить соответствующую информацию здесь, что прекрасно, если вы свяжете источник. – Goose 15 January 2018 в 23:31
  • 4
    Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - Из обзора – Gilles Gouaillardet 16 January 2018 в 02:53

Я бы предложил удалить соединение Mysql -

UPDATE - это для Mysql версии 5.5, если ваша версия отличается, пожалуйста, измените первую строку соответственно

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

И установите снова, но на этот раз установите пароль root самостоятельно. Это сэкономит много сил.

sudo apt-get update
sudo apt-get install mysql-server
3
ответ дан Eminem347 18 August 2018 в 04:09
поделиться
  • 1
    @ingernet, возможно, это из-за некоторых других проблем, которые вы пренебрегли при установке снова – Eminem347 4 August 2017 в 20:21
  • 2
    @PJBrunet может привести к тому, что ваша версия Mysql отличается – Eminem347 22 September 2017 в 07:01
  • 3
    Достаточно справедливо, но лучше всего использовать универсальное решение. – PJ Brunet 22 September 2017 в 07:22

У меня была эта проблема на виртуальной машине Debian 8, с которой я взаимодействовал через Putty на рабочем столе Windows 10.

Я попробовал различные предложения здесь, но ничего не сработало, и я запускаю MariaDB на хост Debian. В конце концов я обнаружил, что не могу запустить сервер db в безопасном режиме, но мне не нужно было, и для меня действительно работали следующие команды, т.е. позволяя вновь созданному пользователю MySql войти на сервер MySql / MariaDB:

sudo service mysql stop
sudo mysql # logs in automatically into MariaDB
use mysql;
update user set plugin='' where user='your_user_name';
flush privileges;
exit;
sudo service mysql restart # restarts the mysql service

Если приведенное выше не работает для вас, выполните шаги, описанные выше в сообщении zetacu ( zetacu ), затем следуйте моим шагам.

Теперь вы должны иметь возможность использовать клиент удаленного терминала и безопасно входить в mysql с помощью команды:

mysql -u your_user_name -p

* введите пароль при появлении запроса

0
ответ дан Tahir Khalid 18 August 2018 в 04:09
поделиться
12
ответ дан Nandesh 30 October 2018 в 00:28
поделиться
Другие вопросы по тегам:

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