sql,SET foreign_key_checks = 0;,
“MySQL跳过数据库的命令
在管理MySQL数据库时,有时会遇到需要跳过权限验证的情况,忘记root用户密码或修改了mysql.user表的记录导致客户端无法连接MySQL,可以通过以下方法实现跳过权限验证。
方法一:使用命令行选项
1、停止MySQL服务
Windows系统:打开命令提示符,输入以下命令并回车:
“`shell
net stop mysql
“`
Linux系统:打开终端,输入以下命令并回车:
“`shell
service mysqld stop
“`
2、启动MySQL服务器以跳过权限验证
Windows系统:在命令提示符中输入以下命令并回车:
“`shell
mysqld skipgranttables
“`
Linux系统:在终端中输入以下命令并回车:
“`shell
mysqld_safe skipgranttables &
“`
3、无密登录:重新使用任意账号和密码进行登录,
“`shell
mysql u root p
“`
当提示输入密码时,输入任意密码即可进入控制台。
4、修改密码:进入MySQL控制台后,切换到mysql库并进行密码修改,
“`sql
USE mysql;
UPDATE user SET authentication_string=PASSWORD(‘newpassword’) WHERE User=’root’;
FLUSH PRIVILEGES;
EXIT;
“`
5、重启MySQL服务:
Windows系统:在命令提示符中输入以下命令并回车:
“`shell
net start mysql
“`
Linux系统:在终端中输入以下命令并回车:
“`shell
service mysqld start
“`
6、验证新密码:尝试使用新设置的密码重新登录MySQL,确保问题已解决。
方法二:修改配置文件
1、编辑my.cnf文件:找到MySQL配置文件(通常是my.cnf
或my.ini
),用文本编辑器打开,在[mysqld]
部分添加一行:
“`ini
skipgranttables
“`
保存并关闭文件。
2、重启MySQL服务:
Windows系统:在命令提示符中输入以下命令并回车:
“`shell
net stop mysql
net start mysql
“`
Linux系统:在终端中输入以下命令并回车:
“`shell
service mysqld restart
“`
3、无密登录:重新使用任意账号和密码进行登录,
“`shell
mysql u root p
“`
当提示输入密码时,输入任意密码即可进入控制台。
4、修改密码:进入MySQL控制台后,切换到mysql库并进行密码修改,
“`sql
USE mysql;
UPDATE user SET authentication_string=PASSWORD(‘newpassword’) WHERE User=’root’;
FLUSH PRIVILEGES;
EXIT;
“`
5、移除skipgranttables配置:再次编辑my.cnf文件,移除或注释掉之前添加的skipgranttables
行,保存并关闭文件。
6、重启MySQL服务:
Windows系统:在命令提示符中输入以下命令并回车:
“`shell
net stop mysql
net start mysql
“`
Linux系统:在终端中输入以下命令并回车:
“`shell
service mysqld restart
“`
7、验证新密码:尝试使用新设置的密码重新登录MySQL,确保问题已解决。
FAQs
1、如何在MySQL 8.0版本中使用skipgranttables?
MySQL 8.0版本中,skipgranttables
已被弃用,可以使用以下命令代替:
“`shell
mysqld console sharedmemory skipnetworking skipgranttables consolesharedmemory consolememory
“`
然后通过另一个命令行窗口登录:
“`shell
mysql u root
“`
2、如何避免每次启动MySQL时都需要跳过权限检查?
建议只在紧急情况下使用跳过权限检查的方法,平时应尽量避免,如果频繁遇到权限问题,应检查用户权限配置是否正确。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1103680.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复