如何使用–skip-grant-tables启动MySQL?

我从我们的数据库中locking了root用户。 我需要获得所有权限回到根用户。 我有我的密码,我可以login到MySQL。 但是root用户没有所有权限。

我有这个问题的标题相同的问题,所以当其他人googles在这个问题上,并希望在Windows上启动MySql'skip-grant-tables'模式,这是我做的。

通过pipe理员工具,服务停止MySQL服务。

修改my.iniconfiguration文件(假设默认path)

 C:\Program Files\MySQL\MySQL Server 5.5\my.ini 

或者MySQL版本> = 5.6

 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 

在SERVER SECTION中的[mysqld]下,添加以下行:

 skip-grant-tables 

所以你有

 # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] skip-grant-tables 

再次启动服务,您应该能够不用密码login到您的数据库。

重新控制MySQL中的根目录危险:风险操作

  • 启动会话ssh(如果可能,使用root)。
  • 使用编辑my.cnf文件。

    sudo vi /etc/my.cnf

  • 将行添加到mysqld块。*

    跳过赠款表

  • 保存并退出。

  • 重新启动MySQL服务。

    服务mysqld重启

  • 检查服务状态。

    服务mysql状态

  • 连接到MySQL。

    MySQL的

  • 使用主数据库。

    使用mysql;

  • 重新定义用户root密码。

    更新用户SET authentication_string =密码('myNuevoPassword')WHERE User ='根';

  • 编辑文件my.cnf。

    sudo vi /etc/my.cnf

  • 擦除线。

    跳过赠款表

  • 保存并退出。

  • 重新启动MySQL服务。

    服务mysqld重启

  • 检查服务状态。

    服务mysql状态

  • 连接到数据库。

    mysql -u root -p

  • 提示时input新密码。

  • 这个操作太危险了,它允许任何人连接到没有用户和密码没有限制的所有数据库。 必须谨慎使用,并尽快回复以避免风险。

如果您使用MySQL 5.6服务器并且遇到C:\Program Files\MySQL\MySQL Server 5.6\my.ini

你应该到C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

你应该添加skip-grant-tables ,然后你不需要密码。

 # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # # server_type=3 [mysqld] skip-grant-tables 

注意: 完成skip-grant-tables ,应该还原C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

如果您在Apple MacBook OSX上运行,则:

  1. 停止你的MySQL服务器(如果它已经在运行)。
  2. find你的MySQLconfiguration文件my.cnf 。 (对于我来说,它被放置在@ /Applications/XAMPP/xamppfiles/etc ,你可以search是否找不到它)。
  3. 在任何文本编辑器中打开my.cnf文件。
  4. [mysqld]部分末尾添加"skip-grant-tables" (不带引号)并保存文件。
  5. 现在启动你的MySQL服务器。 它将以skip-grant-tables选项开始。

做你想要的东西吧!

PS:一旦完成任何你想做的事情,请从my.cnf文件中删除skip-grant-tables 。否则MySQL服务器将始终运行没有访问权限。

使用以下命令(注意“d”): mysqld --skip-grant-tables

Mysql有一个一步一步的手册来做到这一点:

重置mysql root密码

如果这是一个窗口框,最简单的办法是停止服务器,将skip-grant-tables添加到mysqlconfiguration文件,然后重新启动服务器。

一旦解决了权限问题,重复上述步骤,但删除skip-grant-tables选项。

如果你不知道你的configuration文件在哪里,那么login到mysql发送SHOW VARIABLES LIKE '%config%' ,其中一个返回的行会告诉你你的configuration文件在哪里。

编辑my.ini文件并添加skip-grant-tables并重新启动你的mysql服务器:

 [mysqld] port= 3306 socket = "C:/xampp/mysql/mysql.sock" basedir = "C:/xampp/mysql" tmpdir = "C:/xampp/tmp" datadir = "C:/xampp/mysql/data" pid_file = "mysql.pid" # enable-named-pipe key_buffer = 16M max_allowed_packet = 1M sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log_error = "mysql_error.log" skip-grant-tables # Change here for bind listening # bind-address="127.0.0.1" # bind-address = ::1