Acredito que eu tenha deletado o usuário root do MySQL, como eu o recrio?

7

Estou rodando o ISPConfig no CentOS e não sei como, mas não pareço ter um usuário root do mysql.

Eu posso parar o mysqld com

/etc/init.d/mysqld stop

Inicie novamente e pule as tabelas de permissões

mysqld_safe --skip_grant_tables &
mysql> SELECT * FROM sql.user

Eu vejo 4 usuários que eu criei anteriormente, mas nenhum usuário root. Eu tentei colocar isso em um arquivo /root/rootreset.sql.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'my_pass' WITH GRANT OPTION;

E começando com esse arquivo

mysqld_safe --init-file=/root/rootreset.sql &

[1] 30039
[root@algrhckdj ~]# Starting mysqld daemon with databases from /var/lib/mysql/
STOPPING server from pid file /var/run/mysqld/mysqld.pid
111020 04:06:34  mysqld ended
[1]+  Done                    mysqld_safe --init-file=/root/rootreset.sql

Parece que o sql foi executado, não vejo um erro, mas o serviço não parece estar em execução, não consigo me conectar a ele sem esse erro.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

Eu tentei executar o SQL a partir do console depois de começar com --skip-grant-table , mas recebi este erro.

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Parece muita informação, mas tenho tentado todas as diferentes sugestões online e não consigo chegar a lado nenhum. O que devo fazer?

Me ajude superusuário, você é minha única esperança.

    
por Chris 20.10.2011 / 15:38

1 resposta

3

Eu segui estes instruções e meu usuário root agora está listado na tabela de usuários e eu posso fazer login com ele. O que parecia fazer era executar essas etapas como o usuário mysql em vez de root.

root# /etc/init.d/mysqld stop
root# su mysql
mysql$ pwd
/home/mysql
mysql$ echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'my_pass' WITH GRANT OPTION;"> mysql-init
mysql$ mysqld_safe --init-file=/home/mysql/mysql-init &
mysql$ rm mysql-init
mysql$ mysql -uroot -p   # woot, works
    
por 21.10.2011 / 16:51