如何使用–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