Como um usuário que não tem acesso de administrador, você não pode adicionar outro usuário. Isso derrotaria todo o propósito da autenticação / autorização.
Você pode redefinir a senha de root seguindo as etapas descritas neste link .
Estou trabalhando em uma instalação do MySQL que tem um usuário já criado ("admin"), mas esse usuário não tem uma senha e não tem permissões, por isso não posso criar novos usuários ou até redefinir a senha desse usuário.
Estou usando o Ubuntu Server e, depois de examinar os arquivos de ajuda, ainda não consigo encontrar uma maneira de adicionar um usuário quando o único usuário existente não tem permissões. Eu estou sentindo falta de algo básico? Existe uma maneira de adicionar um super usuário da linha de comando antes de entrar na linha de comando do MySQL?
Como um usuário que não tem acesso de administrador, você não pode adicionar outro usuário. Isso derrotaria todo o propósito da autenticação / autorização.
Você pode redefinir a senha de root seguindo as etapas descritas neste link .
Há algo interessante sobre o MySQL ao usar tabelas skip-grant.
Uma vez que você reinicia o mysqld com skip-grant-tables, você não pode usar os comandos GRANT e REVOKE.
Opção 1) UPDATE senha para root @ localhost;
Você pode fazer isso:
UPDATE mysql.user SET password=PASSWORD('whateverpasswordyouwant') WHERE user='root' and host='localhost';
depois reinicie o mysqld.
Opção 2) Você poderia INSERIR um registro diretamente no mysql.user. Se você quer estabelecer um novo usuário para o seu próprio superusuário, você deve fazer o seguinte (isto funciona para o 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
;
Certifique-se de colocar todas as colunas em 'Y', pois o MySQL 4.x, 5.0, 5.1, 5.5 possui permissões diferentes no mysql.user.
Mais um aviso sobre o uso de skip-grant-tables: Quando você inicia o mysqld com isso, todos e sua gramdmother podem efetuar login sem autenticação. Você deve iniciar o mysql assim:
service mysql restart --skip-grant-tables --skip-networking
Isso desativará o TCP / IP e ninguém poderá entrar no banco de dados. Quando terminar, faça o seguinte:
service mysql restart
Desative todo o acesso à porta do MySQL e, em seguida, inicie o daemon do MySQL manualmente passando --skip-grant-tables
para desativar toda a autenticação no servidor.
Tags mysql