-m 1
означает возврат первого совпадения в любой файл. Но он по-прежнему будет продолжать поиск в других файлах. Кроме того, если в одной строке есть два или более, все они будут отображаться.
Вы можете использовать head -1
для решения этой проблемы:
grep -o -a -m 1 -h -r "Pulsanti Operietur" /path/to/dir | head -1
Причина в том, что недавняя установка 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
. Есть два способа решить эту проблему:
mysql_native_password
плагин 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';
Первый шаг: перейдите в /etc/phpmyadmin/config.inc.php, затем раскомментируйте строки, где вы найдете AllowNoPassword. Второй шаг: войдите в свою учетную запись по умолчанию mysql
mysql -u root -p
use mysql;
update user set plugin="" where user='root';
flush privilege;
, и это все!
Вы хотите получить доступ к MySQL с помощью пользователя root, но вы не указали правильный пароль root.
Если вам нужно установить новый пароль для root, на сайте MySQL есть отличная документация о том, как это сделать: http://dev.mysql.com/doc/refman/5.7/ru/resetting-permissions.html
Я не буду показывать процесс здесь, потому что в документации по MySql приведенная выше ссылка понятна и кратким.
Я бы предложил удалить соединение 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
У меня была эта проблема на виртуальной машине 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
* введите пароль при появлении запроса
sudo gedit /etc/phpmyadmin/config.inc.php
. Затем я выполнил поиск поAllowNoPassword
и раскомментировал обе строки, которые содержали его. Тогда я смог войти в систему как root без пароля. – Joe 27 September 2017 в 15:46mysqld_safe --skip-grant-tables
и т. Д., И он не работает. – Stewart 12 May 2018 в 10:20