• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

Mysql突然间所有数据库的表都消失了,且所有数据库都新生成了一张空的warning表,这是什么原因

首先我们需要打开MySQL 命令行客户端,如图所示,点击【MySQL 8.0 command line client】;然后输入自己安装MySQL时设置的密码,登录客户端;接下来,我们先查看一下加密的方式,输入:show variables like ‘default_authentication_plugin’。

一、Mysql突然间所有数据库的表都消失了的原因

首先我们需要打开MySQL 命令行客户端,如图所示,点击【MySQL 8.0 command line client】;然后输入自己安装MySQL时设置的密码,登录客户端;接下来,我们先查看一下加密的方式,输入:show variables like ‘default_authentication_plugin’。

接下来,查看本地mysql用户的信息,

输入:select host,user,plugin from mysql.user;

回车,可以看到root账户的加密方式是caching_sha2_password;

但是Navicat不支持MySQL新版本的这种用户登录账户加密方式,所以下面我们要修改root账户的加密方式为【mysql_native_password】,如图所示,输入:ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;

回车,即可修改成功,注意这里最后的root是你设置的root账户的密码,我设置的是“root”。

最后,我们再重新打开Navicat连接MySQL,就可以成功用root账户连接了。

总计:

1、打开MySQL 命令行客户端;

2、输入自己安装MySQL时设置的密码,登录客户端;

3、查看一下加密的方式;

4、查看本地mysql用户的信息;

5、修改root账户的加密方式为【mysql_native_password】;

6、重新打开Navicat连接MySQL即可。

延伸阅读:

二、为什么要持久化连接

这和 web 服务器的工作方式有关。web 服务器可以通过三种方法来利用 PHP 生成 web 页面。

名列前茅种方法是将 PHP 自以为 CGI“包装器”用作一个单独运行的语言解释器(CGI Wapper)。当以这种方法运行时,PHP 会为向 web 服务器的每个 PHP 页面请求创建并销毁 PHP 解释器的时候实例。由于其会随每个请求的结束而销毁,因此其获取的任何资源(例如指向 SQL 数据库服务器的链接)都会在销毁时关闭。在这种情况下,不会从使用持久连接中获得任何好处——因为根本不会持久。

第二,也是最流行的方法是把 PHP 用作多进程 web 服务器的一个模块,这种方法目前只适用于 Apache。多进程的服务器通常有一个父进程和一组子进程协调运行,子进程负责提供网页的工作。每当接收达到客户端提出请求时,该请求会传递给尚未给其它客户端提供服务的某个子进程。这也就是说当相同的客户端第二次向服务端发出请求时,它将有可能由与名列前茅次不同的某个子进程提供服务。在开启了一个持久连接后,所有请求 SQL 服务的后继页面都能够重用与 SQL 服务器建立的相同连接。

最后一种方法是将 PHP 用作多线程 web 服务器的插件。目前 PHP 支持 WSAPI 和 NSAPI(在 Windows 上),允许 PHP 作为 Netscape FastTrack(iPlanet)、Microsoft 的 Internet Information Server (IIS) 和 O’Reilly 的 WebSite Pro 等多线程服务器的插件使用。该行为与前面描述的多过程模型相同。

相关文章