在openSUSE 11上删除root用户后如何访问MySQL?

Neg*_*cki 6 linux mysql php

不幸的是,我用命令删除了 MySQL 用户,delete from mysql.user现在我无法访问 MySQL。我尝试查看MySQL - ERROR 1045 - Access denied,但它不适合我,因为我没有任何 MySQL 用户。

我卸载并重新安装了 MySQL,但无法访问 MySQL;我该怎么办?我想在phpMyAdmin没有登录的情况下拥有,但我毁了整件事。

卸载后没有结果,我尝试删除MySQL的目录并重新安装它们,但再次没有结果,现在出现此错误:

Error 2002: can't connect to local mysql server through socket /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

我没有任何用户可以重置密码,但是如果我必须重新安装,我不知道如何连接到 MySQL,并尝试过:

  • MySQL -u root
  • MySQL
  • mysqld-safe等链接中

Rol*_*DBA 6

我想推荐一些更安全的东西:

  1. 创建一个放回root@localhost密码的文件wh@t3v3r
    cd /var/lib/mysql
    echo "GRANT ALL PRIVILEGES ON *.* TO root@localhost " > InitFile.sql
    echo "IDENTIFIED BY 'wh@t3v3r';" >> InitFile.sql
    
    Run Code Online (Sandbox Code Playgroud)
  2. /etc/my.cnf[mysqld]组 下添加以下内容
    [mysqld]
    init-file=/var/lib/mysql/InitFile.sql
    
    Run Code Online (Sandbox Code Playgroud)
  3. service mysql restart
  4. 删除init-file=/var/lib/mysql/InitFile.sql/etc/my.cnf
  5. rm -f /var/lib/mysql/InitFile.sql

您可以mysql像这样连接:

mysql -uroot -p <hit enter>
Password: <type password wh@t3v3r and hit enter>
Run Code Online (Sandbox Code Playgroud)


Ano*_*ker 0

mysqld有一个--skip-grant-tables选择;您可以尝试以这种方式重新启动它,然后您可以从备份中恢复数据。