一日,同事忘记了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 库的权限
   接下来就好办了
   

点击(此处)折叠或打开

  1. mysql> use mysql
  2. Database changed
  3. mysql> update user set password=password("zjx") where user="root";
  4. Query OK, 4 rows affected (0.04 sec)
  5. Rows matched: 4 Changed: 4 Warnings: 0

  6. mysql> flush privileges;
  7. Query OK, 0 rows affected (0.00 sec)

  8. mysql> quit

    总结:
   如果你用的是TOKUDB 官方版的MYSQL,那么忘记了root 密码,请使用 skip-grant-tables=ture 参数
11-13 17:59
查看更多