Mysql突然间所有数据库的表都消失了,且所有数据库都新生成了一张空的warning表,这是什么原因?
一、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 等多线程服务器的插件使用。该行为与前面描述的多过程模型相同。

相关推荐HOT
更多>>
受到关注的前沿技术有哪些?
一、人工智能(AI)人工智能是目前最受关注的技术领域之一,涵盖机器学习、深度学习、自然语言处理等方面。AI技术的广泛应用带动了对AI专业人才...详情>>
2023-10-17 23:43:19
有什么免费且稳定可以远程连接的Mysql云数据库?
一、免费且稳定可以远程连接的Mysql云数据库1、SQL FiddleSQL Fiddle 提供了 MySQL、Oracle、PostgreSQL、SQLite 以及 SQL Server 数据库环境详情>>
2023-10-17 12:52:43
为什么mysql从8.0.0版本开始,zip方式安装就不支持32位了?
一、为什么mysql从8.0.0版本开始,zip方式安装就不支持32位目前mysql支持win32的版本最新只到5.7.33,具体如下图,打开下载页面之后点击红框里...详情>>
2023-10-17 09:29:42
MySQL InnoDB引擎中的各种锁具体是怎么实现的?
一、MySQL InnoDB引擎中的各种锁的实现方式MySQL InnoDB引擎中的各种锁是通过多种机制实现的1、共享锁(Shared Lock)和排他锁(Exclusive Lock...详情>>
2023-10-17 08:59:33