mysql跳过授权表进入服务
1.mysql服务是通过mysqld进程提供的
我们可以直接双击mysqld.exe或者在cmd模式下输入mysqld。两种操作都会在后台创建mysqld进程
创建好mysqld.exe进程后,我们就可以登录mysql了。
2.在cmd模式下,我们还可以输入: mysqld --install mysql5.7.14。这种方式的作用是启动mysqld服务,同时将服务注册到系统服务列表中,名字叫做mysql5.7.14。那么以后,我们启动mysql服务时就不需要按路径找到mysqld.exe文件了。mysql服务会随系统的启动而自行判断是否需要启动。
启动类型有:自动,手动,禁用。
3.我们可多次
mysqld --install a
mysqld --intall b
mysqld --install c
这只是将mysql服务注册多个名字而已,真正起作用的还是mysqld.exe进程。而这个进程是唯一的,也就是说启动a服务后,会创建mysqld.exe进程,然后b,c服务都不能被启动。
4.跳过授权表登录mysql
在输入以上命令启动mysql服务前,先保证已经关闭了mysql服务,任务管理器中没有mysqld.exe进程
输入以上命令后,不要关闭窗口,保持mysql服务的运行,关闭了就结束服务了。
重新打开新窗口,在窗口按路径找到mysql.exe所在位置,输入mysql命令就成功登录了
因为mysql的一系列授权表不会加载进内存,mysql的登录也就不需要用户名和密码了
登录之后使用update语句修改mysql.user表的authentication_string值
记得flush privileges让内存重新加载授权表,这样root用户的密码就重新被设置了。
5.修改root密码除了上面的--skip-grant-tables外,还可以直接修改mysql的配置文件
将skip-grant-table前面的分号去掉就可以了,但是这种方式是永久性的。一旦修改配置表,那么以后每次登陆都不需要用户和密码了,所以改完之后最好改回来
6.mac中
mysqld_safe --skip-grant-tables跳过授权表启动mysql服务