ОШИБКА 1044 (42000): доступ запрещен для пользователя '@' localhost 'в базу данных' db '

Я хочу начать писать запросы в MySQL.

show grants показывает:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

У меня нет идентификатора пользователя, но когда я хочу создать пользователя, у меня нет привилегий, также я не знаю, как делать привилегии, когда даже у меня нет одного пользователя!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation

Я попытался войти в систему как root:

mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p root' at line 1

Ответ 1

Нет, вы должны запустить mysql -u root -p в bash, а не в командной строке MySQL. Если вы находитесь в mysql, вы можете выйти, набрав exit.

Ответ 2

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

В типе терминала:

mysqladmin -u root password 'root password goes here'

И затем для вызова клиента MySQL:

mysql -h localhost -u root -p

Ответ 3

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

Чтобы узнать, кем вы являетесь, и чьи разрешения у вас есть:

select user(), current_user();

Чтобы удалить надоедливого анонимного пользователя:

drop user ''@'localhost';

Ответ 4

Вы можете попробовать выполнить полную команду входа:

mysql -h host -u root -p 

где host будет 127.0.0.1.

Сделайте это, чтобы убедиться, что существует сотрудничество.

Использование mysql -u root -p позволяет мне выполнять большой поиск базы данных, но отказывается от любого создания базы данных из-за установки пути.

Ответ 5

Во-первых, если вы не знакомы с командной строкой, попробуйте использовать phpmyadmin из своего веб-браузера. Это позволит вам создать базу данных mysql и имя пользователя.

Вот как вы подключаетесь из командной строки (bash):

mysql -h hostname -u username -p database_name

Например:

[email protected] ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb

Ответ 6

Если вы находитесь в оболочке mysql, выйдите из него, набрав exit. Он вернет вас в командную строку. Теперь запустите mysql, используя следующую команду:

sudo mysql -u root -p

Если ваше имя пользователя является чем-то иным, чем root, замените "root" в приведенной выше команде своим именем пользователя:

sudo mysql -u your-user-name -p

Затем он спросит вас пароль mysql-account-password, и ваш mysql не покажет проблему с правами доступа.

Ответ 7

@Никпарса... у вас есть 2 вопроса:

1). mysql -uroot -p должен быть введен в bash (также известный как ваш терминал), а не в командной строке MySQL. Вы исправляете эту ошибку, набрав

exit

в командной строке MySQL. Теперь вы вернулись в свою командную строку bash/terminal.

2). У вас есть синтаксическая ошибка:

mysql -uroot -p; 

точка с запятой перед -p должна идти. Правильный синтаксис:

mysql -uroot -p

введите правильный синтаксис в командной строке bash. Введите пароль, если у вас есть одна настройка; иначе просто нажмите кнопку ввода. Вы должны получить ответ, похожий на этот: enter image description here

Надеюсь, это поможет!

Ответ 8

Большинство разработчиков подключаются к серверу (я предполагаю, что у вас есть имя пользователя и пароль для базы данных mysql), затем из Bash они переключаются на mysql> prompt, затем используют приведенную ниже команду (которая не работает

mysql -h localhost -u root -p

Что нужно сделать, так это использовать приведенную выше команду в приглашении Bash → при этом он будет запрашивать пароль, если он передан непосредственно в приглашение mysql и

, тогда база данных, таблица может быть создана одна за другой

Я столкнулся с подобным тупиком, поэтому обмен опытом

Ответ 9

У меня была правильная команда на приведенные выше ответы, то, что я пропустил, было на Workbench, где мы упомянем "Ограничить возможности подключения от хоста" для пользователя, по умолчанию он "%" - измените это на "localhost", и он подключается хорошо после этого!