Я столкнулся с проблемой с пользователем mysql без полномочий root / admin, я выполняю следующие шаги для создания пользователя и его привилегий, исправьте меня, если я делаю неправильно,
Я устанавливаю mysql
на RHEL 5.7 64bit
пакеты приведены ниже после того , как я сделал rpm install
мы
- создание mysql db с помощью
mysql_install_db
, затем - запуск службы mysql, затем
- используя
mysql_upgrade
также мы делаем для сервера.
После этого процесса я могу войти в систему, root
но с пользователем без полномочий root я не могу войти на сервер:
[root@clustertest3 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-5.5.21-1.rhel5
MySQL-server-advanced-5.5.21-1.rhel5
[root@clustertest3 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Nov 30 11:09 /var/lib/mysql/mysql.sock
mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)
Это проблема, с которой я столкнулся, есть ли решение?
mysql
mysql-error-1045
user3061726
источник
источник
SELECT * FROM mysql.user
Ответы:
Не предоставляйте все привилегии для всех баз данных пользователю без полномочий root, это небезопасно (и у вас уже есть «root» с этой ролью)
Этот оператор создает нового пользователя и предоставляет ему выбранные привилегии. IE:
Взгляните на документацию, чтобы увидеть все привилегии подробно
РЕДАКТИРОВАТЬ: вы можете найти дополнительную информацию с помощью этого запроса (войдите как "root"):
Чтобы увидеть, что случилось
источник
Если вы подключаетесь к MySQL с помощью удаленного компьютера (пример рабочей среды) и т. Д., Выполните следующие действия, чтобы устранить эту ошибку в ОС, где установлен MySQL.
Попробуйте войти в экземпляр MYSQL.
Это помогло мне устранить эту ошибку.
источник
Пытаться:
Или еще лучше использовать:
mysql_setpermission
создать пользователяисточник
%
который должен работать для всех хостов, не решает эту проблему. Так что, указав,localhost
он должен работать. Если это НЕ РАБОТАЕТ, что-то не так в mysqlПохоже, вы пытаетесь сделать пользователя «golden» @ «%», но другой пользователь с именем «golden» @ «localhost» мешает / имеет приоритет.
Выполните эту команду, чтобы увидеть пользователей:
Вы должны увидеть две записи:
1) пользователь = золотой, хост =%
2) пользователь = золотой, хост = локальный
Выполните эту команду:
Перезапустите MySQL Workbench.
Затем снова выполните исходные команды:
Затем, когда вы попытаетесь войти в MySQL, введите его так:
Нажмите «Проверить соединение» и введите свой пароль «пароль».
источник
Сначала я создал пользователя, используя:
После того , как я погуглил и увидел это , я обновил пароль пользователя, используя:
и я мог подключиться позже.
источник
Для всех, кто делал все советы, но проблема все еще сохраняется.
Проверьте хранимую процедуру и просмотрите ОПРЕДЕЛИТЕЛИ. Эти определяющие могут больше не существовать.
Моя проблема возникла, когда мы изменили хост с подстановочными знаками (%) на IP-адрес, что сделало базу данных более безопасной. К сожалению, есть некоторые представления, которые все еще используют 'user' @ '%', хотя 'user' @ '172 ....' технически корректно.
источник
У меня также есть аналогичная проблема, и позже я обнаружил, что это потому, что я изменил свое имя хоста (не
localhost
).Поэтому я решаю это, указав
--host=127.0.0.1
источник
MySQL интерпретирует иначе, чем вы создаете пользователя. Например, если вы создаете такого пользователя:
MySQL ожидает, что вы дадите некоторую привилегию, используя
grant all on <your_db>.* to user01;
Не забывай
flush privileges;
Но если вы создаете такого пользователя (передавая IP-адрес), вы должны изменить его на:
Итак, чтобы предоставить некоторые привилегии, вы должны сделать это:
источник
Убедитесь, что у пользователя есть запись localhost в таблице пользователей. Это была моя проблема. EX:
источник
В моем случае такая же ошибка произошла из-за того, что я пытался использовать mysql, просто набрав «mysql» вместо «mysql -u root -p».
источник
подключите свой сервер из mysqlworkbench и запустите эту команду-> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'yourpassword';
источник
Для раздражающего поиска, попадающего сюда после поиска этого сообщения об ошибке:
Проблема для меня заключалась не в том, чтобы заключить пароль в кавычки. например. Мне нужно было использовать
-p'password'
вместо-ppassword
источник
Просто добавьте имя компьютера вместо localhost в имя хоста или адрес хоста MySQL.
источник