如果遗忘了 tidb 的 root 密码如何操作,这里稍微拓展一下,将 MySQL 和 TiDB 的解决办法都记录一下,方便后面遇到的时候可以直接拿来用。

MySQL 中忘记密码如何处理

1、找到 my.cnf 文件,如果是 rpm 安装,默认应该是在/etc/my.cnf,当然专业的 DBA 部署的话可能会在其他路径。

2、修改 my.cnf,在 [mysqld] 作用域下,增加 skip-grant-tables 配置项。

3、重启 mysqld,一般先 ps -ef | grep mysqld ,会有两个进程,mysqld_safe 是守护进程,kill 掉 mysqld 的进程即可。

4、再次登录 mysql 就不需要输入密码了,可以直接 update mysql.user 表来修改密码,之后记得将 my.cnf 的 skip 注释掉,否则数据库没有密码是很危险的行为。

TiDB 中忘记密码如何处理(2.1版本)

1、找到 tidb-server 的配置文件,具体在 deploy 目录下的 conf/tidb.toml

2、修改 tidb.toml,在[security] 作用域下,增加 skip-grant-table=true 配置项

3、找到 tidb-server 的启动文件,具体在 deploy 目录下的script/run_tidb.sh

4、由于 tidb 限制了 skip 模式只能在操作系统 root 用户启动 tidb-server 才可以进行,所以要用 root 用户来执行上面的脚本

sudo sh run_tidb.sh

5、此时再次登录 tidb,就会发现不需要输入 root 密码了,重置之后记得恢复配置文件及启动脚本即可

导入了 MySQL 的系统表(mysql.user)如何处理

目前(2.1版本),tidb 的系统 schema 并没有完全兼容 MySQL,包括5.6、5.7 乃至8.0版本的系统表,主要是 mysql.user 以及权限控制相关的表,字段和 tidb 里的并不完全一样。所以在上线割接的时候,一定要注意,只能导出 MySQL 中的业务库数据,不能直接将 MySQL 中的系统表包括 mysql 和 information_schema 等的数据直接导入 tidb 中,否则可能会遇到类似下面的报错

[planner:1054]Unknown column 'password' in 'field list'select HIGH_PRIORITY Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Process_priv,Grant_priv,References_priv,Alter_priv,Show_db_priv,Super_priv,Execute_priv,Index_priv,Create_user_priv,Trigger_priv from mysql.user;

2019/03/12 07:21:09.010 terror.go:327: [fatal] [planner:1054]Unknown column 'password' in 'field list'github.com/pingcap/errors.AddStack        /home/jenkins/workspace/build_tidb_2.1/go/pkg/mod/github.com/pingcap/errors@v0.11.0/errors.go:174github.com/pingcap/parser/terror.(*Error).GenWithStackByArgs

/home/jenkins/workspace/build_tidb_2.1/go/pkg/mod/github.com/pingcap/parser@v0.0.0-20190227090929-c68bfe7e0257/terror/terror.go:231

遇到这种情况,原则上只靠上面忘记密码的方式是解决不了的,因为系统表例如 mysql.user 的表结构已经被改变了,而2.1版本中在启动 tidb-server 的时候必须要去校验 mysql.user 表(即使以 skip-grant 模式启动)。所以直接联系官方获取支持吧,目前我们有多个社区大群,或者一些 user group,官方会提供一个临时的 binary 来绕过检测,启动 tidb-server 后,重建几张系统表即可恢复。

后续优化

1、如果上游 MySQL 建了比较多的用户,可以提供一个脚本快速将上游的用户以及权限配置导出并导入到下游 tidb。

2、后续的版本中,可能会考虑在 skip-grant 模式下,不去校验 mysql.user 表即可启动,这样用户自己找到对应版本的 tidb 中系统表即可自己重建恢复。

3、可能会对 tidb 中的系统表做一些权限上的控制,避免用户的误操作导致系统表被破坏。

tidb mysql登录_TiDB 忘记密码如何登陆相关推荐

  1. MySQL 5.7 忘记密码

    MySQL 5.7 忘记密码 原文:MySQL 5.7 忘记密码 MySQL 5.7 忘记密码 # 关闭 mysql 服务 net stop mysql# 在命令行输入以下命令, 输入后新建一个 CM ...

  2. mysql密码登陆过程_mysql单实例忘记密码如何登陆过程

    mysql单实例root密码找回方法: a 停止mysql服务 [root@db02 data]# /etc/init.d/mysqld stop Shutting down MySQL.. SUCC ...

  3. mysql登录不用输密码登录_mysql实现不用密码登录的实例方法

    具体方法: 第一步:停止mysql服务 /etc/init.d/mysqld stop 第二步:跳过密码验证 /usr/bin/mysqld_safe --skip-grant-tables 或 my ...

  4. Mac下MySQL 8.0+忘记密码的重置操作

    关闭数据库服务 方法一: 开启一个终端,在终端输入指令如下: // 也可以在系统偏好里有个MySQL里关闭 sudo /usr/local/mysql/support-files/mysql.serv ...

  5. linux忘记密码无法登陆/修改密码

    centOS7.3忘记密码/修改root密码 RedHat最近升级了centos linux操作系统,更新为centos7,更新幅度之大,连红帽官方的认证RHCE也进行了升级,认证必须使用rhel7, ...

  6. 会员模块(会员注册、会员登录、忘记密码、会员中心)

    会员注册 html代码: <form id="register_form" data-url="/tools/submit_ajax.ashx?action=use ...

  7. mysql登录如何重置密码忘记_MySql登陆密码忘记了怎么办?MySQL重置root密码方法...

    MySQL有时候忘记了root密码是一件伤感的事.这里提供Windows 和 Linux 下的密码重置方法. Windows: 1.以系统管理员身份登陆系统. 2.打开cmd-----net star ...

  8. linux下mysql 8.0忘记密码后重置密码

    设置免密码登陆 编辑mysql配置文件my.cnf 在最后添加skip-grant-tables 保存 重启mysql服务: service mysqld restart: 免密登录MySQL将旧密码 ...

  9. zabbix密码忘记怎么从mysql找回_zabbix 忘记密码,找回密码

    zabbix 默认用户名Admin,默认密码zabbix 1.如果数据库也忘记了账户密码(时间长了什么不忘记呀) a. 源代码安装的zabbix web服务 假设Zabbix部署目录为/www/zab ...

最新文章

  1. 【TCP/IP详解 卷一:协议】第十二章 广播和多播
  2. 全球大半网络瘫痪,背后原因竟来自这家无名小公司
  3. 获得md5加密后的字符串
  4. android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
  5. 3des加密 java php_php 3DES加密如何兼容Java
  6. 基于探究式教学法的计算机网络原理课程的教学改革与实践,基于探究式教学法的“计算机网络原理”课程的教学改革与实践分析...
  7. 点击部分刷新html ajax,一文全解web前端精简知识点
  8. 基于开源蜜罐的实践与功能扩展
  9. mysql5.7.14_mysql 5.7.14 下载安装配置方法图文教程
  10. 战不胜抖音的腾讯微视,即将被判“死刑”? | 畅言
  11. ModifyStyle()调用不起作用
  12. Java8日期时间API
  13. ME3616-OPENCPU完整调试笔记
  14. JVM调优前置知识-深堆Retained Heap和浅堆Shallow Heap
  15. 不一样的 LaTeX 教程(第二话):LaTeX 多级标题设置必知必会
  16. 珍藏的PS技巧(可以尝试一下哦)(转载)
  17. web可嵌入编辑器汇总
  18. ROS2可视化利器---Foxglove Studio
  19. html5绘制标尺,html5画布创建标尺
  20. java jar包资源文件_深入jar包:从jar包中读取资源文件

热门文章

  1. 计算机运用领域最高奖的是2016年,中国首获高性能计算应用领域最高奖
  2. java二级下拉菜单_航菜单栏中的二级下拉菜单
  3. 9月21日科技联播:报告显示网约车案发率低于传统出租车;刘强东性侵案已移交美国检方...
  4. 爬虫--pyquery使用
  5. m-orchastration system
  6. MySQL中的RAND()函数使用详解
  7. Linux操作系统CentOS7.2发行版本的安装与配置
  8. php 使用curl通过post方式提交json数据
  9. 大数据解决方案背后——开放架构才是未来
  10. Java基础篇:Java集合