Для этой же таблицы
UPDATE PHA_BILL_SEGMENT AS PHA (SELECT BILL_ID, COUNT (REGISTRATION_NUMBER) AS REG FROM PHA_BILL_SEGMENT GROUP BY REGISTRATION_NUMBER, BILL_DATE, BILL_AMOUNT ИМЕЕТ REG & gt; 1) T SET PHA .BILL_DATE = PHA.BILL_DATE + 2 WHERE PHA.BILL_ID = T.BILL_ID;
Не разрешайте всем привилегиям по всем базам данных для пользователя без полномочий root, он небезопасен (и у вас уже есть «root» с этой ролью)
GRANT <privileges> ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Этот оператор создает нового пользователя и предоставляет выбранные привилегии. IE:
GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Взгляните на docs , чтобы просмотреть все привилегии подробно
EDIT: вы можете найти дополнительную информацию по этому запросу (журнал в качестве «root»):
select Host, User from mysql.user;
Чтобы узнать, что произошло
У меня также есть аналогичная проблема, и позже я обнаружил, что это потому, что я изменил свое имя хоста (не localhost
).
Поэтому я разрешаю его, указав --host=127.0.0.1
mysql -p mydatabase --host=127.0.0.1
Сначала я создал пользователя, используя:
CREATE user user@localhost IDENTIFIED BY 'password_txt';
. После поиска в googling и просмотра этого , я обновил пароль пользователя, используя:
SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password_txt');
и я мог бы подключиться позже.
Похоже, вы пытаетесь сделать пользователя «золотым» @ «%», но другой пользователь по имени «золотой» @ «localhost» мешает / имеет приоритет.
Выполните эту команду, чтобы увидеть пользователей:
SELECT user,host FROM mysql.user;
Вы должны увидеть две записи:
1) user = golden, host =%
2) user = golden, host = localhost
Выполните следующие команды:
DROP User 'golden'@'localhost';
DROP User 'golden'@'%';
Перезапустите Workbench MySQL.
Затем выполните свои исходные команды снова:
CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Затем, когда вы пытаетесь войти в MySQL, введите его так:
Нажмите «Проверить соединение» и введите пароль «password».
В соответствии с созданием вашего пользователя MySQL интерпретирует другой способ. Например, если вы создаете такого пользователя:
create user user01 identified by 'test01';
MySQL ожидает, что вы предоставите некоторую привилегию, используя grant all on <your_db>.* to user01;
Не забудьте flush privileges;
Но если вы создаете такого пользователя (передавая IP-адрес), вы должны изменить его на:
create user 'user02'@'localhost' identified by 'teste02';
, поэтому, чтобы дать некоторые привилегии, вы должны это сделать:
grant all on <your_db>.* to user02@localhost;
flush privileges;
В моем случае такая же ошибка происходит, потому что я пытался использовать mysql, просто набрав «mysql» вместо «mysql -u root -p»
Попробуйте:
CREATE USER 'golden'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'golden'@'localhost';
FLUSH PRIVILEGES;
Или даже лучше использовать: mysql_setpermission
для создания пользователя
%
, который должен работать на всех хозяев, не решает его. Поэтому, указав localhost
, он должен работать. Если этот DOESNT работает, что-то отключено в mysql
– nrathaus
3 December 2013 в 16:24
подключите свой сервер от mysqlworkbench и запустите эту команду -> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'yourpassword';
Просто добавьте имя компьютера вместо «localhost» в имя хоста или адрес хоста MySQL.
Для всех, кто сделал все советы, но проблема по-прежнему сохраняется.
Проверьте хранимую процедуру и просмотрите ОПРЕДЕЛЕНИЯ.
Моя проблема возникла, когда мы изменили хост шаблона (%) на IP-адрес, сделав базу данных более безопасной. К сожалению, есть некоторые представления, которые по-прежнему используют «user» @ «%», хотя «user» @ «172 ....» технически корректен.
Если вы подключаетесь к MySQL с помощью удаленной машины (пример workbench) и т. д., используйте следующие шаги для устранения этой ошибки в ОС, где установлен MySQL
mysql -u root -p
CREATE USER '<<username>>'@'%%' IDENTIFIED BY '<<password>>';
GRANT ALL PRIVILEGES ON * . * TO '<<username>>'@'%%';
FLUSH PRIVILEGES;
Попробуйте войти в экземпляр MYSQL. Это помогло мне устранить эту ошибку.