如何使用–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')WHEREUser='根';
- 
编辑文件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上运行,则: 
- 停止你的MySQL服务器(如果它已经在运行)。
-  find你的MySQLconfiguration文件my.cnf。 (对于我来说,它被放置在@/Applications/XAMPP/xamppfiles/etc,你可以search是否找不到它)。
-  在任何文本编辑器中打开my.cnf文件。
-  在[mysqld]部分末尾添加"skip-grant-tables"(不带引号)并保存文件。
-  现在启动你的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