本文共 1415 字,大约阅读时间需要 4 分钟。
为root用户设置密码这样才正确:【否则后患无穷,以下仅供参考,试了以下,还是看不到mysql数据库】
pdate user set password = password('111111') where user='root';
文章来源:
===================================================================================
今天用mysql源码建立了一个数据库,然后通过root用户,空密码登录进行,然后用命令 use mysql 跳转到mysql用户下,然后对user表进行update操作来修改root用户的密码,update完了以后执行了 flush privileges 命令刷新mysql系统表,exit出来后,想用新密码登录进去试试,发现密码没有修改成功,root用户还是空密码,通过show databases命令 也只能看到 以下两个用户
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+ 网上找了半天,发现是root用户已经失去了超级权限,所以只能看到root用户自己的数据库。 mysql数据库找不到,就不能登陆到user表改用户的权限。网上一种解决方法 通过--skip-grant-table启动 可以忽略权限 #mysqld_safe –skip-grant-tables & # mysql -u root -S /home/mysqlData/mysqld.sock mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.03 sec) 以上步骤就解决了此问题 今天新建了mysql数据库 想修改root用户密码,于是执行了update user set password = '111111' where user='root'; 执行完成后exit出来,重新用root用户登录就登陆不了了。 只能通过--skip-grant-table 的启动模式来登陆进去。 后来终于发现 user表中的用户密码都是加密过的,要通过update user set password = password('111111') where user='root';这样写才能改密码成功 总结出来自己太菜了,同时发现 --skip-grant-table 启动模式对于忘记root密码或者mysql中root用户,直接用# mysql -S/home/mysqlData/mysqld.sock 就能登陆了,不用输入用户名和密码。登陆进去后有超级权限。(-S/home/mysqlData/mysqld.sock 用于一台机器双mysql数据的时候,指定连接哪个数据库的)转载地址:http://dbgvb.baihongyu.com/