Я работаю над установкой MySQL, в которой уже создан пользователь («admin»), но у этого пользователя нет пароля и никаких разрешений, поэтому я не могу создавать новых пользователей или даже сбрасывать пароль этого пользователя.
Я использую Ubuntu Server, и после просмотра файлов справки я все еще не могу найти способ добавить пользователя, когда единственный существующий пользователь не имеет разрешений. Я упустил что-то базовое? Есть ли способ добавить суперпользователя из командной строки перед переходом в командную строку MySQL?
Есть кое-что интересное, что нужно отметить в MySQL при использовании skip-grant-tables.
После перезапуска mysqld с помощью skip-grant-tables вы не сможете использовать команды GRANT и REVOKE.
Вариант 1) ОБНОВИТЬ пароль для root @ localhost;
Вы могли сделать это:
UPDATE mysql.user SET password=PASSWORD('whateverpasswordyouwant') WHERE user='root' and host='localhost';
затем перезапустите mysqld.
Вариант 2) Вы можете ВСТАВИТЬ запись прямо в mysql.user. Если вы хотите создать нового пользователя для себя, называемого суперпользователем, вы должны сделать следующее (это работает для MySQL 5.5):
INSERT INTO mysql.user SET
Host = 'localhost',
User = 'superuser',
Password = PASSWORD('whateverpasswordyouwant'),
Select_priv = 'Y',
Insert_priv = 'Y',
Update_priv = 'Y',
Delete_priv = 'Y',
Create_priv = 'Y',
Drop_priv = 'Y',
Reload_priv = 'Y',
Shutdown_priv = 'Y',
Process_priv = 'Y',
File_priv = 'Y',
Grant_priv = 'Y',
References_priv = 'Y',
Index_priv = 'Y',
Alter_priv = 'Y',
Show_db_priv = 'Y',
Super_priv = 'Y',
Create_tmp_table_priv = 'Y',
Lock_tables_priv = 'Y',
Execute_priv = 'Y',
Repl_slave_priv = 'Y',
Repl_client_priv = 'Y',
Create_view_priv = 'Y',
Show_view_priv = 'Y',
Create_routine_priv = 'Y',
Alter_routine_priv = 'Y',
Create_user_priv = 'Y',
Event_priv = 'Y',
Trigger_priv = 'Y',
Create_tablespace_priv = 'Y',
ssl_type = '',
ssl_cipher = '',
x509_issuer = '',
x509_subject = '',
max_questions = 0,
max_updates = 0,
max_connections = 1000000,
max_user_connections = 1000000
;
Убедитесь, что для каждого столбца установлено значение «Y», поскольку MySQL 4.x, 5.0, 5.1, 5.5 имеет разные разрешения в mysql.user.
Еще одно предупреждение об использовании skip-grant-tables: когда вы запускаете mysqld с этим, все и его бабушка могут войти в систему без аутентификации. Вы должны запустить mysql так:
service mysql restart --skip-grant-tables --skip-networking
Это отключит TCP / IP, и никто не сможет проникнуть в БД. Когда вы закончите, просто сделайте это:
service mysql restart
Как пользователь, у которого нет прав администратора, вы не можете добавить другого пользователя. Это нарушит всю цель аутентификации / авторизации.
Вы можете сбросить пароль root, выполнив шаг, описанный в этом ссылка на сайт.
Отключите любой доступ к порту MySQL, а затем запустите демон MySQL вручную, передав --skip-grant-tables
чтобы отключить всю аутентификацию на сервере.