一日,同事忘记了root 密码,让我帮忙修改。
我在my.cnf 里面加上 --skip-grant-tables
然后启动mysql 失败,日志是 不支持tokudb 引擎。这个错误很常见,也很头疼。通常跟my.cnf参数设置有关
莫非tokudb 不支持
skip-grant-tables ? 当时有现场支持的工作,暂时没在研究。
后来有了闲时间,自己用虚拟机试了下,果然是不支持
--skip-grant-tables,然后查看mysqld的参数,发现 skip-grant-tables false
莫非tokudb应该写成 skip-grant-tables=ture ?
于是就这么修改了my.cnf
启动Mysql ,启动成功!
mysql -u root 试试无密码登陆
结果是报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
尝试几次后,发现用 mysql -u root -h 127.0.0.1 可以登录,且有使用mysql 库的权限
接下来就好办了
-
mysql> use mysql
-
Database changed
-
mysql> update user set password=password("zjx") where user="root";
-
Query OK, 4 rows affected (0.04 sec)
-
Rows matched: 4 Changed: 4 Warnings: 0
-
-
mysql> flush privileges;
-
Query OK, 0 rows affected (0.00 sec)
-
-
mysql> quit
总结:
如果你用的是TOKUDB 官方版的MYSQL,那么忘记了root 密码,请使用
skip-grant-tables=ture 参数
阅读(1069) | 评论(0) | 转发(0) |