连接远程计算机提示:“这可能是由于CredSSP加密数据库修正” 问题_侣行G_X_N的博客-CSDN博客_这可能是由于credssp加密数据库修正

mikel阅读(757)

来源: 连接远程计算机提示:“这可能是由于CredSSP加密数据库修正” 问题_侣行G_X_N的博客-CSDN博客_这可能是由于credssp加密数据库修正

1. 问题描述
windows系统更新,改变了数据库的加密配置,如下图:

2. win + R,输入gpedit.msc,打开本地组策略编辑器
2.1 操作步骤:计算机配置–>管理模板->系统–>凭据分配–>加密数据库修正

2.2 下图为双击加密数据库凭证后展示的页面,设置已启用,保护级别设置为易受攻击

2.3 修改完成后再次验证,已经可以正常的连接远程桌面了。

————————————————
版权声明:本文为CSDN博主「侣行G_X_N」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/G_x_n/article/details/113278711

搭建自己的低代码平台 - 菜菜聊架构 - 博客园

mikel阅读(845)

来源: 搭建自己的低代码平台 – 菜菜聊架构 – 博客园

2021 开年“低代码”成了热门话题,各大云厂商都在加码。作为普通企业的我们是否有也可以深度定制一套自己的“低代码”平台呢?

2|0二、云厂商的低代码平台

阿里推出了易搭,通过简单的拖拽、配置,即可完成业务应用的搭建。旨在为广大中小企业提供一套低成本的企业应用搭建解决方案。应用无缝植入钉钉企业工作台,随时随地、高效协同。

基于 magic-api 搭建自己的低代码平台

腾讯则是推出了微搭,通过行业化模板、拖放式组件和可视化配置快速构建多端应用(小程序、H5 应用、Web 应用等),打通了小程序、云函数。

基于 magic-api 搭建自己的低代码平台

3|0三、搭建我们自己的低代码平台?!

回到前言中的问题,我们是否可以基于开源项目来快速搭建我们自己的低代码平台呢?答案是肯定的,目前已经有很多非常不错的开源项目,apijson、dataway 还有后面我要重点介绍的 magic-api 都是非常不错的低代码开源项目。下面大家请跟着我一起来看看今天我要推荐的三个低代码开源项目:百度 amis、h5-Dooring 和 magic-api。

4|03.1 百度 amis(前端)

百度 amis 是一套前端低代码框架,通过 JSON 配置就能生成各种后台页面,极大减少开发成本,甚至可以不需要了解前端。

基于 magic-api 搭建自己的低代码平台

5|03.2 h5-Dooring(前端)

h5-Dooring,让 H5 制作像搭积木一样简单, 轻松搭建 H5 页面, H5 网站, PC 端网站, 可视化设计。

H5 页面拖拽生成:

基于 magic-api 搭建自己的低代码平台

新建数字大屏:

基于 magic-api 搭建自己的低代码平台

数字大屏效果:

基于 magic-api 搭建自己的低代码平台

更多请查看官网 http://h5.dooring.cn

6|03.3 magic-api(后端)

magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic-api 提供的 UI 界面完成,自动映射为 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象即可完成常见的 HTTP API 接口开发。

在线开发调试 UI:

基于 magic-api 搭建自己的低代码平台

7|0四、magic-api 搭建

自 magic-api 在开源中国开源,笔者一直在关注此项目。magic-api 搭建比较简单,跟着官方仓库快速开始即可。

8|04.1 加入依赖

<!– 以 spring-boot-starter 的方式引用 –> <dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>1.3.9</version> </dependency>

9|04.2 添加配置

server.port=9999 #配置 web 页面入口 magic-api.web=/magic/web #配置文件存储位置。当以 classpath 开头时,为只读模式 magic-api.resource.location=/data/magic-api

10|04.3 效果

基于 magic-api 搭建自己的低代码平台

11|04.4 添加接口

基于 magic-api 搭建自己的低代码平台

点击执行就可以看到效果,这里不做展示,magic-api 官方做了大量的各种各样的功能演示,大家可以去体验体验。地址:
http://140.143.210.90:9999/magic/web/index.html

基于 magic-api 搭建自己的低代码平台

12|04.5 magic-api 核心之 magic-script

magic-api 底层使用的是作者(小东)自研的 magic-script 来执行脚本,他是一个语法类似 js 的 JVM 脚本语言。作者开发很多好用的功能, 其中的 linq 功能就是非常的一个。

示例:

var list = [{ sex : 0, name : ‘小明’ },{ sex : 1, name : ‘小花’ }] return select * from list t where t.sex = 0

结果:

{ “sex”: 0, “name”: “小明” }

13|0五、结合 mica 使用

14|05.1 加入 mica-bom 依赖

<dependencyManagement> <dependencies> <dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-bom</artifactId> <version>${mica.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

15|05.2 mica-logging 无缝接入

mica-logging 的接入比较简单加入依赖即可:

基于 magic-api 搭建自己的低代码平台

注意:更多配置,如 json 日志和 logstash 日志收集请查看 mica 文档。

16|05.3 mica-captcha 验证码

base64 验证码:

基于 magic-api 搭建自己的低代码平台

17|05.4 mica-ip2region ip 转位置信息

基于 magic-api 搭建自己的低代码平台

示例项目源码:
https://gitee.com/596392912/magic-api-example

从 mica 的接入可以看出,magic-api 的扩展性非常好,更多的自定义配置和扩展我们可以查看 官方文档 :

基于 magic-api 搭建自己的低代码平台

18|0六、低代码开源

19|0前端:

amis(百度前端低代码框架):
https://github.com/baidu/amis

Sortable: https://github.com/SortableJS/Sortable

码良:
https://gitee.com/ymm-tech/gods-pen

h5-Dooring: https://github.com/MrXujiang/h5-Dooring

20|0后端:

apijson: https://github.com/Tencent/APIJSON

dataway: https://gitee.com/zycgit/hasor

magic-api: https://gitee.com/ssssssss-team/magic-api

21|0七、总结

基于 magic-api 等开源项目我们也可以搭建自己的低代码平台。当然开发这个低代码平台我们还是需要些工作量,主要是打通 web ui 和后端接口的 api。笔者曾经也经历过一个电商项目,很多活动都是周五下午接到需求,周一就必须要上线。借助 magic-api 这类低代码工具我们可以快速完成这类需求。最后,希望这篇文章对大家有所启发。

Ant Design介绍 - 简书

mikel阅读(1679)

来源: Ant Design介绍 – 简书

1、Ant Design设计语言和组件库
蚂蚁金服体验技术部经过大量的项目实践和总结,沉淀出设计语言 Ant Design,这可不单纯只是设计原则、控件规范和视觉尺寸,还配套有前端代码实现方案。也就是说采用Ant Design后,UI设计和前端界面研发可同步完成,效率大大提升。目前有阿里、美团、滴滴、简书采用。Ant Design有Web版和Moblie版。

Paste_Image.png

Ant Design Web版: https://ant.design/index-cn
Ant Design Mobile版: https://mobile.ant.design/index-cn

2、Ant Motion(动效解决方案)
Ant Design里的前端代码实现方案可不是搭建静态的界面这么简单,还包含动效的解决方案,也提供动效设计风格和原则,要知道大部分动效做不出来的场景,都是因为设计师方案和研发代码实现存在一定的鸿沟,有了Ant Motion完整的解决方案,设计和研发工程师沟通协作无障碍,动效实现将会非常轻松。

Paste_Image.png

Ant Motion: https://motion.ant.design/
3、AntD Library(Ant Design官方Axure控件库)
其实类似于Ant Design的设计语言搭配前端实现方案的也不止支付宝这一家,但是牛逼的是支付宝还将Ant Design做成了Axure控件库并公开下载,Web和Mobile全都有,简直是造福行业,功德无量。

Paste_Image.png

AntD Library下载地址: http://library.ant.design/
4、AntUX(站点地图模板)
除了Axure控件库以外,还提供Axure、Sketch、OmniGraffle三种格式的站点地图模板。提升流程图、站点地图、产品整体结构图的绘制效率。据悉,未来还会提供Illustrator版本。

Paste_Image.png

AntUX下载地址: http://ux.ant.design/
5、Ant V(可视化图表解决方案)
可视化图表能让复杂的逻辑和臃肿的数字变动更清晰更容易理解,Ant V对不同的图表类型提供了详细的介绍、案例和使用建议,并总结出图表设计原则和相关文献推荐,所有的图表的Web和Moblie前端实现方案也一应俱全。

Paste_Image.png

Ant V: https://antv.alipay.com/index.html

作者:lwoodenheart
链接:https://www.jianshu.com/p/2ca388e8d68a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

手把手带你体验Stream流

mikel阅读(748)

来源: 手把手带你体验Stream流

前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

上一篇讲解到了Lambda表达式的使用《最近学到的Lambda表达式基础知识》,还没看的同学可以先去阅读一下哈~

相信也有不少的同学想要知道:Lambda表达式在工作中哪个场景会用得比较多?跟Lambda搭边的,使用Stream流会比较多

一般人第一次看Stream流的代码,都会有点看不懂(它的代码看起来好像就不是写Java一样.),希望这篇文章能带大家入个门

一、体验Stream流

大家在自学时,大多数会学过一个程序:算出从数组元素的和,当时我们是怎么写的?一般来说是这样的:

public static void main(String[] args) {
    int[] nums = { 123 };
    int sum = 0;
    for (int i : nums) {
        sum += i;
    }
    System.out.println("结果为:" + sum);
}

如果我们使用Stream流的话,可以这样:

public static void main(String[] args) {
    int[] nums = { 123 };
    int sum2 = IntStream.of(nums).sum();
    System.out.println("结果为:" + sum2);
}

代码量上可以明显看出,用Stream流的方式会少一些。

我理解的Stream流编程就是:某些场景会经常用到操作(求和/去重/过滤….等等),已经封装好API给你了,你自己别写了,调我给你提供的API就好了

1.1 支持并发

回到我们最原始的代码:

public static void main(String[] args) {
    int[] nums = { 123 };
    int sum = 0;
    for (int i : nums) {
        sum += i;
    }
    System.out.println("结果为:" + sum);
}

如果我们想要for循环的内部支持并发的话,显然不太好去写。但使用Stream流的方式,调用一个方法就可以支持并发(parallel):

public static void main(String[] args) {
    int[] nums = { 123 };
    int sum2 = IntStream.of(nums).parallel().sum();
    System.out.println("结果为:" + sum2);
}

优点:调API肯定是比自己写的代码量要少。

缺点:不方便调试

为什么要使用Stream流在我看来就是以上两个原因:

  • 方便并发
  • 代码量少(直接调用API)

二、如何使用Stream流?

图片
Stream继承结构图

使用Stream流分为三步:

  1. 创建Stream流
  2. 通过Stream流对象执行中间操作
  3. 执行最终操作,得到结果
图片
三步走

2.1 创建流

创建流我们最常用的就是从集合中创建出流

/**
 * 返回的都是流对象
 * @param args
 */
public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    // 从集合创建
    Stream<String> stream = list.stream();
    Stream<String> stream1 = list.parallelStream();

    // 从数组创建
    IntStream stream2 = Arrays.stream(new int[]{235});

    // 创建数字流
    IntStream intStream = IntStream.of(123);

    // 使用random创建
    IntStream limit = new Random().ints().limit(10);

}

2.2 执行中间操作

怎么理解中间操作?意思是这样的:在上面我们已经能创建出Stream了,我们是对Stream进行操作,对Stream操作返回完返回的还是Stream,那么我们称这个操作为中间操作。

图片
中间操作 解释

比如,我们现在有个字符串my name is 007,代码如下:

String str = "my name is 007";

Stream.of(str.split(" ")).filter(s -> s.length() > 2)
    .map(s -> s.length()).forEach(System.out::println);

分解:

1、从字符串数组创建出流对象:

Stream<String> split = Stream.of(str.split(" "));

2、通过流对象的API执行中间操作(filter),返回的还是流对象:

Stream<String> filterStream = split.filter(s -> s.length() > 2);

3、通过返回的流对象再执行中间操作(map),返回的还是流对象:

Stream<Integer> integerStream = filterStream.map(s -> s.length());

因为中间操作返回的都是流对象,所以我们可以链式调用

注意:Stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行(惰性求值)。

比如说,peek()是一个中间操作,返回的是Stream流对象,只要它不执行最终的操作,这个Stream是不会执行的。

String str = "my name is 007";
Stream.of(str.split(" ")).peek(System.out::println); // 不会有信息打印

2.3 执行最终操作

最终操作返回的不再是Stream对象,调用了最终操作的方法,Stream才会执行。还是以上面的例子为例:

String str = "my name is 007";
Stream.of(str.split(" ")).peek(System.out::println).forEach(System.out::println)

这次我们加入了最终操作,所以这次的Stream流会被执行,由于中间操作和最终操作都是执行打印,所以会看到两次打印:

图片
结果图

至于中间操作和最终操作怎么区分,我们以返回值来看就行了。中间操作返回的是Stream实例对象,最终操作返回的不是Stream实例对象:

图片
Stream接口的方法

最后

这篇文章主要跟大家一起初步认识一下Stream流,至于中间操作、最终操作的API讲解我就不写了(网上的教程也很多)

使用Stream的原因我认为有两个:

  1. JDK库提供现有的API,代码写起来简洁优化
  2. 方便并发。大家可以记住一个结论:在多核情况下,可以使用并行Stream API来发挥多核优势。在单核的情况下,我们自己写的for性能不比Stream API 差多少

参考资料:

最近学到的Lambda表达式基础知识

mikel阅读(723)

来源: 最近学到的Lambda表达式基础知识

前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

中秋去了躺上海,在外滩上打了个卡:

图片
外滩

紧接着学了一下Java的函数式编程,给大家整理了一下,一起学习!

一、Lambda用法

之前写Optional这个类的时候,简单说了一下Lambda是怎么用的,这里再跟大家一起回顾一下,Lambda的语法是这样的:

图片
语法

以Lambda语法创建线程和匿名内部类创建线程的区别(显然代码少了很多!):

public static void main(String[] args) {
    // 用匿名内部类的方式来创建线程
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("公众号:Java3y---关注我!");
        }
    });

    // 使用Lambda来创建线程
    new Thread(() -> System.out.println("公众号:Java3y---关注我!"));
}

使用Lambda表达式,实际就是创建出该接口的实例对象

图片
返回一个Runnable对象实例

图示;Runnable接口来举例:

图片
以Runnable接口为例

使用Labmda表达式需要函数式编程接口,比如在Runnable接口上我们可以看到@FunctionalInterface注解(标记着这个接口只有一个抽象方法)

图片
函数式编程接口只有一个抽象方法

1.1 函数式编程接口

从上面的代码例子可以看出,我们使用Lambda表达式创建线程的时候,并不关心接口名,方法名,参数名。我们只关注他的参数类型,参数个数,返回值

JDK原生就给我们提供了一些函数式编程接口方便我们去使用,下面是一些常用的接口:

图片
常用的函数式编程接口

简单说明一下:

  • 表格中的一元接口表示只有一个入参,二元接口表示有两个入参
图片
以BiFunction为例
图片
常用的函数式接口

Demo:

// Consumer 一个入参,无返回值
Consumer<String> consumer = s-> System.out.println(s);
consumer.accept("Java3y");

// Supplier 无入参,有返回值
Supplier<String> supplier = () -> "Java4y";
String s = supplier.get();
System.out.println(s);

//.....

使用Lambda时,要记住的就两点:

  1. Lambda返回的是接口的实例对象
  2. 有没有参数、参数有多少个、需不需要有返回值、返回值的类型是什么—->选择自己合适的函数式接口

1.2 方法引用

在学Lambda的时候,还可能会发现一种比较奇怪的写法,例如下面的代码:

// 方法引用写法
Consumer<String> consumer = System.out::println;
consumer.accept("Java3y");

如果按正常Lambda的写法可能是这样的:

// 普通的Lambda写法
Consumer<String> consumer = s -> System.out.println(s);
consumer.accept("Java3y");

显然使用方法引用比普通的Lambda表达式又简洁了一些。

如果函数式接口的实现恰好可以通过调用一个方法来实现,那么我们可以使用方法引用

图片
函数式接口的实现恰好可以通过调用一个方法来实现

方法引用又分了几种:

  • 静态方法的方法引用
  • 非静态方法的方法引用
  • 构造函数的方法引用

方法引用Demo:

public class Demo {
    public static void main(String[] args) {
        // 静态方法引用--通过类名调用
        Consumer<String> consumerStatic = Java3y::MyNameStatic;
        consumerStatic.accept("3y---static");

        //实例方法引用--通过实例调用
        Java3y java3y = new Java3y();
        Consumer<String> consumer = java3y::myName;
        consumer.accept("3y---instance");

        // 构造方法方法引用--无参数
        Supplier<Java3y> supplier = Java3y::new;
        System.out.println(supplier.get());
    }
}

class Java3y {
    // 静态方法
    public static void MyNameStatic(String name) {
        System.out.println(name);
    }

    // 实例方法
    public void myName(String name) {
        System.out.println(name);
    }

    // 无参构造方法
    public Java3y() {
    }
}

结果如下:

图片
结果

最后

Lambda虽然代码看起来是简洁,但是如果复杂的话还是比较难看明白的。

在学习Lambda的时候,首先我们得知道有哪些常用函数式编程接口,这些函数式编程接口的有什么区别(参数个数、返回值类型)

Lambda表达式返回的是接口对象实例,如果函数式接口的实现恰好可以通过调用一个方法来实现,那么我们可以使用方法引用来替代Lambda表达式

最后再完整举个例子:

// Supplier是一个无入参带返回的值的函数式编程接口

// () -> new Java3y()这整句Lambda表达式,返回的是Supplier接口的实例。从Lambda表达式可以看出无参数,带返回值
Supplier<Java3y> supplier = () -> new Java3y(); 

// 由于这个“() -> new Java3y()”Lambda表达式可以通过调用一个方法就实现了,那么我们可以优化成方法引用
Supplier<Java3y> supplier2 = Java3y::new;

分享四个Java低代码快速开发平台贼好用, 私活毕设神器_hi Edwin的博客-CSDN博客_java低代码开发平台

mikel阅读(3674)

https://opsli.com

来源: 分享四个Java低代码快速开发平台贼好用, 私活毕设神器_hi Edwin的博客-CSDN博客_java低代码开发平台

一、OPSLI 快速开发平台
OPSLI 快速开发平台基于springboot、vue、element-ui 、vue-admin-beautiful,项目采用前后端分离架构,热插拔式业务模块与插件扩展性高 ,代码简洁,功能丰富,开箱即用

官网: https://opsli.com
开源地址: https://github.com/hiparker/opsli-boot

 

 

 

 

 

二、Jfinal
Jfinal 不忘初心,在提升开发效率、降低学习成本两个方向已迭代近 10 年, 后端开发所需要的时间越来越少,已趋近极致。用上 jfinal 以后 90% 以上的时间都在折腾前端,有很多同学强烈希望官方能出一个像 jfinal 一样开发效率高、学习成本低的前端框架。
私活神器 !!

官网: https://jfinal.com

 

 

三、Jeecg 快速开发平台
Jeecg-Boot低代码开发平台,可以应用在任何J2EE项目的开发中,尤其适合SAAS项目、企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工Merge的开发方式,可以显著提高开发效率70%以上,极大降低开发成本。项目整合了layui的layim聊天项目

官网: http://www.jeecg.com
开源地址: https://github.com/zhangdaiscott/jeecg-boot

 

 

 

四、RuoYi 低代码开发平台
RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。

官网: http://www.ruoyi.vip
开源地址: https://gitee.com/y_project/RuoYi-Vue

 

 

欢迎进群项目分享交流QQ群:724850675
————————————————
版权声明:本文为CSDN博主「hi Edwin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013416283/article/details/111595433

WordPress建立数据库连接时出错终极解决方案 - 闪电博

mikel阅读(949)

来源: WordPress建立数据库连接时出错终极解决方案 – 闪电博

“ 建立数据库连接时出错 ”可能是WordPress用户可能遇到的最常见和最可怕的错误之一。这绝对与死亡白屏(WSOD)息息相关。此错误意味着您的网站不再通信或可以访问WordPress数据库,整个网站瘫痪。

对于这样的错误,站长切勿掉以轻心的事情,应该立即尝试解决此问题,直接影响流量,SEO等等。但不用担心,今天我们将讨论导致此错误的一些常见情况,以及对应的解决方案。

建立数据库连接有什么错误?

WordPress网站上的所有信息,例如发布数据,页面数据,元信息,插件设置,登录信息等,都存储在MySQL数据库中。唯一没有存储的数据是媒体内容,例如图像,以及主题/插件/核心文件,例如index.php,wp-login.php等。当有人访问您的网站时,PHP会在页面上执行代码并从数据库中查询信息,然后将其显示到访客浏览器中。

如果由于某种原因这无法正常工作,则将出现建立数据库连接时出错,如下所示。整个页面空白,因为连接无法正常工作,无法检索任何数据以呈现页面。这不仅破坏了网站的前端,而且导致无法访问WordPress仪表板。

但是,访客可能不会立即在前端看到此错误。那是因为站点缓存还可供访问,直到缓存过期为止。

建立数据库连接时出错

建立数据库连接时出错

导致此错误的常见情况

以下是一些常见原因,后面我们会根据这些常见原因,给出不同的解决方案。

  • 最常见的问题是数据库登录凭据不正确。WordPress网站需要使用数据库相关登录信息来连接到其对应的MySQL数据库。
  • 数据库已损坏。由于主题,插件可安装卸载如此之多,长年累月的不断删除和安装,有时会导致数据库损坏。这可能是由于表丢失或个别损坏,或者是某些信息被意外删除了。
  • WordPress安装中可能存在损坏的文件
  • 数据库服务器问题。Web主机端可能有很多问题,例如数据库因流量高峰而过载或由于并发连接过多而无法响应。实际上,对于共享主机,这很常见,因为许多网站共享一台主机的资源。

如何修复“建立数据库连接时出错”

在开始对错误进行故障排查之前,建议您首先进行数据库备份,因为以下许多建议涉及操作数据库中的信息。无论你的技术水平如何,在尝试修改WordPress网站数据库之前,都应始终进行备份。

您可以使用WordPress备份插件(例如VaultPress或WP Time Capsule)来备份文件和数据库。

如果是宝塔面板用户,那就网站文件及数据库备份就很简单了,进入宝塔控制面板,在左边菜单找到“计划任务”,进入界面找到备份数据库和备份网站,手动执行即可。

备份WordPress网站

备份WordPress网站

当然你还可以通过SFTP等工具,进入服务器执行手动备份网站文件,及通过phpMyAdmin手动备份MySQL数据库。备份成功后,就该开始对“建立数据库连接时出错”问题进行故障排除了。

参考阅读:《使用BackWPup插件备份WordPress教程》、《如何安全备份WordPress博客网站数据?

1.检查数据库登录凭据

首先要做的是检查以确保WordPress配置文件的数据库登录凭据正确。这是迄今为止“建立数据库连接时出错”报错的最常见原因,特别是在迁移网站到新的托管服务提供商之后。WordPress网站的连接详细信息存储在wp-config.php文件中,该文件通常位于WordPress网站的根目录下。

它包含四个重要信息,这些信息都必须正确才能成功进行连接数据库。

数据库名称

// ** MySQL settings ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘xxxxxx’);

数据库用户名

/** MySQL database username */
define(‘DB_USER’, ‘xxxxxx’);

数据库密码

/** MySQL database password */
define(‘DB_PASSWORD’, ‘xxxxxxxxx’);

主机名(服务器)

/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);

要访问wp-config.php文件,您可以通过SFTP连接到站点并浏览到站点的根目录。或者,如果您使用的是宝塔,则可以进入宝塔控制面板单击“文件”,浏览到站点的根目录,然后右键单击以编辑文件。

宝塔文件管理

宝塔文件管理

以下是打开文件后的示例。

wp-config.php文件数据库访问凭证

wp-config.php文件数据库访问凭证

现在,您需要对照当前值及服务器数据库真实值,以确保它们正确无误。对于宝塔用户,请按照以下说明进行操作。

检查宝塔面板中的数据库凭据

您需要登录宝塔面板,进入数据库即可找到网站对应的数据库,找到数据库名、用户名及密码等信息 。

宝塔面板查看数据库账号密码

宝塔面板查看数据库账号密码

然后核对wp-config.php文件的对应信息,确保两边的信息一致即可,非常方便。(或者这也就是国内众多站长选择使用宝塔面板的原因)

检查cPanel面板中的数据库凭据

如果你是使用cPanel管理主机,整个步骤稍微有点复杂。

首先要检查的是数据库名称。为此,您需要进入cPanel控制面板登录phpMyAdmin 。

cPanel控制面板的phpMyAdmin

cPanel控制面板的phpMyAdmin

在左侧菜单找到你的网站对应的数据库名称。忽略“information_schema”数据库,因为这是主机使用的数据库。然后,将该名称与wp-config.php文件中的DB_NAME值进行比较。如果它们匹配,那么这不是问题。如果它们不匹配,那么您需要更新wp-config.php文件。

cPanel 数据库名称

cPanel 数据库名称

您还可以通过确保数据库是否包含你网站的URL来验证这是正确的数据库。只需单击数据库,然后单击wp_options表(出于安全目的,此名称可能稍有不同,例如wpxx_options)。在表格的顶部,您将看到网站URL和名称的值。如果这些与您当前站点匹配,说明这个是你的网站的数据库。

在phpMyAdmin检查网站URL

在phpMyAdmin检查网站URL

如果数据库名称正确,但是在建立数据库连接时仍然出现错误,那你还需要检查用户名和密码。为此,你需要在WordPress网站的根目录中创建一个新的PHP文件(随意命名,例如checkdb.php),并输入以下代码,需使用wp-config.php文件中的值替换为db_user和db_password的值。

<?php
$test = mysqli_connect(‘localhost’, ‘db_user’, ‘db_password’);
if (!$test) {
die(‘MySQL Error: ‘ . mysqli_error());
}
echo ‘Database connection is working properly!’;
mysqli_close($testConnection);

浏览器访问https://yourdomain.com/checkdb.php。如果收到“MySQL Error: Access denied(MySQL错误:访问被拒绝)”,则说明您的用户名或密码错误,您将需要继续执行下一步以重置凭据。

MySQL错误:访问被拒绝

MySQL错误:访问被拒绝

但如果是“Database connection is working properly.(数据库连接正常工作)”,则说明数据库用户名和密码正确。完成测试后,请确保删除此文件。

数据库连接正常工作

数据库连接正常工作

如果确定数据库用户名和密码错误,接下来您需要重置用户名和密码。在cPanel中,点击“MySQL数据库”。

cPanel 控制面板之MySQL数据库

cPanel 控制面板之MySQL数据库

向下滚动并创建一个新的MySQL用户。尝试选择唯一的用户名和密码(可以使用提供的密码生成器工具生成高强度密码),以免轻易被猜中。然后点击“Create User”。或者,您也可以在此界面上更改当前数据库用户的密码。

创建MySQL用户

创建MySQL用户

然后向下滚动并将新用户添加到数据库中。下一个界面将询问您要分配的特权,选择“All Privileges(所有权限)”。

使用cPanel新增数据库用户

使用cPanel新增数据库用户

然后使用这些新凭据并更新至wp-config.php文件(更新DB_USER和DB_PASSWORD值)。到此,你也可以使用前面提到的测试文件验证数据库凭证信息是否正确。但如果这未能解决问题,可能是主机名(DB_HOST)错误。某些主机使用不同的值,你可以参阅一些常见数据库主机值列表,或者查看主机相关文档及联系主机提供商提供。有些人可能还会使用127.0.0.1而不是localhost。

如果您已完成上述所有操作,但仍是“建立数据库连接时出错”,继续往下看。

2. 修复损坏的数据库

在某些情况下,可能是数据库已损坏。有时(尽管不是很经常)会发生这种情况,因为随着时间的推移,新插件和主题会不断添加/删除数百张数据表。如果您尝试登录WordPress网站的仪表板并收到以下错误,则表明您的数据库已损坏:“一个或多个数据库表不可用。数据库可能需要修复。” 重要的是要注意,您可能只会在访问WordPress管理后台才看到此错误,而在前端仅看到建立数据库连接错误提示。

WordPress实际上提供可以启动的数据库修复模式。只需将以下内容添加到wp-config.php文件的底部。

define(‘WP_ALLOW_REPAIR’, true);

WordPress修复模式

WordPress修复模式

然后浏览器访问WordPress网站地址:https : //yourdomain.com/wp-admin/maint/repair.php。在页面你可以选择“修复数据库”或“修复并优化数据库”。由于您目前可能正在对站点进行故障排除,因此建议使用“修复数据库”选项,更高效。

WordPress修复数据库

WordPress修复数据库

在运行完上述数据库的修复之后,请确保删除添加到wp-config.php文件中的代码行,否则任何人都可以运行修复。如果您使用cPanel,则还可以从MySQL数据库界面中运行修复。

cPanel修复数据

cPanel修复数据

或者,您也可登入phpMyAdmin进行修复。只需登录phpMyAdmin,选择需要修复的网站对应的数据库,然后选择所有表。然后从下拉菜单中单击“修复表”。这实际上只是在运行REPAIR TABLE命令。

通过phpMyAdmin修复表

通过phpMyAdmin修复表

最后,你想更“装逼”些,还可以选择使用WP-CLI通过以下命令运行修复:

wp db repair

3. 修复损坏文件

“建立数据库连接时出错”另外一个可能原因是文件已损坏。无论这是由于通过FTP传输文件的问题,黑客获得了访问您的站点的权限还是主机的问题,您都可以快速解决此问题。特别提醒,尝试此操作之前先备份您的网站。

基本上,您只需要替换WordPress的核心版本,无需理会插件,主题或媒体。你可以通过访问WordPress.org下载最新版本的WordPress

下载WordPress

下载WordPress

在您的计算机上解压缩该文件,然后删除wp-content文件夹以及wp-config-sample.php文件。

删除wp-content 目录及WP初始配置文件

删除wp-content 目录及WP初始配置文件

然后,通过SFTP将其余文件上传到您的站点,覆盖现有文件。这将替换所有有问题的文件,并确保您拥有干净且未损坏的新文件。建议这样做后清除浏览器缓存。然后检查您的WordPress网站以查看错误是否仍然存在。

4. 数据库服务器问题

如果上述方法均不能帮助您解决问题,那么强烈建议您与托管服务提供商联系,因为这可能是数据库服务器的问题。例如,如果数据库并发连接太多,则可能会产生错误。因为很多主机在服务器上都限制了一次允许连接的数量。利用缓存插件可以帮助最大程度地减少您站点上的数据库交互。

这个问题在共享主机上经常发生,因为理论上其他人可能会影响您的站点。这是因为共享主机共同使用服务器上的所有资源。始终建议尽可能使用VPS主机来搭建WordPress网站,至少主机资源由自己分配利用而不会变得人满为患。独立主机通常对环境进行微调,即可处理专门针对WordPress网站的大量流量。

5. 恢复至最近备份

最后在情非得已之时,恢复最近备份数据。在某些情况下,如果无需担心发生错误之时与上一次备份之间产生的数据,这可能是解决问题的较快方法。许多服务器提供商都提供备份数据恢复支持。请记住,您可能需要同时还原数据库和文件。

如果您是宝塔用户,则可以通过宝塔控制面板的计划任务,创建备份数据库或者备份网站计划任务,支持按周期定时备份,非常方便。

宝塔控制面板备份计划

宝塔控制面板备份计划

如果是恢复数据库备份,您只需要进入宝塔控制面板,进入数据库菜单,找到你需要恢复的数据库,点击“有备份”,选择需要恢复的备份版本,点击“恢复”即可。

WordPress数据库恢复

WordPress数据库恢复

如果是恢复网站备份,则可以通过访问宝塔控制面板-文件,进入/www/backup/site目录,找到网站备份压缩包,将压缩包解压到对应网站目录即可。

WordPress网站数据恢复

WordPress网站数据恢复

小结

如您所见,有很多方法可以解决WordPress中“建立数据库连接时出错”问题。最常见的错误是wp-config.php文件中设置的数据库凭据不正确,为此检查以确保正确无误是应该作为第一步。无论是由于哪个因素导致“建立数据库连接时出错”,希望上述步骤可以帮助您恢复网站的正常运行。请记住,如果需要,应始终对网站进行备份以还原站点。

您的WordPress站点是否也曾遭遇“建立数据库连接时出错”?当时导致该错误的原因是什么?你又是如何解决?不妨在下方评论,与其他网友一起分享讨论。

苹果cms忘记后台管理员密码如何找回?_我的主题网MyTheme

mikel阅读(960)

来源: 苹果cms忘记后台管理员密码如何找回?_我的主题网MyTheme

苹果cms忘记了后台管理员密码。许多小伙伴都可能会遇到这个问题,那我就来简单分享一下苹果CMSV10如何找回管理员密码。苹果CMSV10忘记密码,如何重置管理员密码可以通过mySQL数据库表找回密码,具体操作步骤如下。

1、以宝塔面板为例,登陆宝塔找到数据库点击管理

苹果cms忘记后台管理员密码如何找回?

2、我们使用mySQL管理工具(如phpmyadmin)登陆到数据库,打开表单mac_admin,可以看到一下结果:

主要参数说明:admin_name,【管理员用户名是明文显示】;admin_pwd,【管理员密码使用md5进行了简单加密】;admin_random,【安全码,如果为开机安全码验证登陆,可忽略】;

 

苹果cms忘记后台管理员密码如何找回?

3、将图片红框内admin_pwd的内容复制下来,来到md5在线解密平台https://www.cmd5.com/把复制的内容粘贴到密文框内点击查询即可得到忘记的密码。知道密码后我们直接登陆后台就可以了。

 

苹果cms忘记后台管理员密码如何找回?

4、如果你是新装的苹果cms系统还没有什么数据,建议你直接极速重新安装来的更方便快捷一些,可以参考我们之前分享过的帮助文档教程:快速重新安装苹果cms基础教程来进行再次安装。

以上就是苹果cmsmip模板为大家搜集整理的关于:苹果cms忘记后台管理员密码如何找回?相关问题的解释和相关问题的回答,希望对你当前遇到的苹果cms忘记后台管理员密码如何找回?相关的问题能够提供和得到一些帮助!更多请关注:我的主题网帮助文档

 

docfile已损坏 docfile has been corrupted visual studio 2022

mikel阅读(1725)

docfile has been corrupted visual studio 2022

中文错误:docfile已损坏 错误代码:0x00083019 好像是这么个错误编码

就是用vs2022打开vs2019开发的项目,调试或者关闭vs2022就提示这个错误,开始以为安装的功能不全导致的,结果安装了桌面开发环境,web开发都不行,害得我还重装了win10,还是不行,百度也没个结果,害得我只能谷歌了一下,还是得谷歌啊,老外的一个帖子解决了问题:

I had the same problem with “Docfile corruption” error after upgrading to 17.2. preview 2.1 today. I could not build, load files or even close VS without forcefully ending VS process in task manager.

Message Box Error | Click for Show Full Size Imgae

Here is what fixed it for me without having to downgrade…

  1. Delete all .vs folders (Hidden Folder) from the solution
  2. Delete all files in
  3. Re-open project/solution and all working again.

Message Box Error | Click for Show Full Size Imgae

Hope this saves someone from losing a few hours on this.

就是删除vs2019的项目中的.vs文件夹,然后再用vs2022打开项目解决方案重新加载下就解决了!

国内的搜索引擎愣是找不到一个解决方案的帖子,我也是我了个去了!

老外帖子地址:https://stackoverflow.com/questions/72417857/doc-file-has-been-corrupted-error-after-updating-vs-to-microsoft-visual-studio-e