头像

帝国备份王备份、恢复数据库时页面空白

备份:

最近有个数据库需要备份,就想到了用帝国备份王备份,但是我配置好数据库后,点击备份数据库,点开始备份以后也空白。
后来查阅了相关资料,发现,如果你数据库有数字开头的数据表的情况下,还有数据表使用了保留关键字作为表名都会出现页面空白的问题。

我看了下自己数据库只有一个带数字的表。果断跳过,不备份这个表,即可。

还原:

因为数据文件比较大,超100M了,所以用帝国备份王恢复数据。但每次恢复着就突然白屏了,后来经检查发现,原来我的备份的文件有几个文件Ftp没上传成功,在服务器上显示0kb,后来重新上传就可以了,如果出现类似情况,可以用我这个方法检查一下。

头像

宝塔面板出现:is not within the allowed path(s) 解决方法

is not within the allowed path(s) 意思是没权限访问那个文件夹

解决方法:

每个网站路径下面都有一个 .user.ini 文件.

里面的内容为

open_basedir=/www/wwwroot/xxx.com/:/tmp/:/proc/

这个代表本网站可以访问的路径

如果需要添加其他路径.可以直接在后面添加即可,每个路径之间用:隔开

添加以后 重启下Nginx即可生效. 其他环境应该也都一样.

头像

C# AES加密与慕课的JAVA AES对称加解密代码分享

以下是C#版本代码:

///<summary>

    /// DES加密、解密帮助类

    /// </summary>

    ///

    public class MoocAESEncrypt

    {

        private static char[] BcdLookup = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’ };

        

        #region AES加密

        /// <summary>

        /// AES加密

        /// </summary>

        /// <param name=”toEncrypt“>要加密的内容</param>

        /// <param name=”strKey“>密钥(16或者32位)</param>

        /// <returns>Base64转码后的密文</returns>

        public static string Encrypt(string toEncrypt, string strKey)

        {

            byte[] keyArray = HexStrToBytes(strKey);

            byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);

            RijndaelManaged rDel = new RijndaelManaged();//using System.Security.Cryptography;    

            rDel.Key = keyArray;

            rDel.Mode = CipherMode.ECB;//using System.Security.Cryptography;    

            rDel.Padding = PaddingMode.PKCS7;//using System.Security.Cryptography;                

            ICryptoTransform cTransform = rDel.CreateEncryptor();//using System.Security.Cryptography;    

            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

            return BytesToHexStr(resultArray);                                          //返回十六进制数据; 

        }

        #endregion AES加密

        #region AES解密

        /// <summary>

        /// AES解密

        /// </summary>

        /// <param name=”toDecrypt“>要解密的内容</param>

        /// <param name=”strKey“>密钥(16或者32位)</param>

        /// <returns>解密后的明文</returns>

        public static string Decrypt(string toDecrypt, string strKey)

        {

            byte[] keyArray = HexStrToBytes(strKey);

            byte[] toEncryptArray = HexStrToBytes(toDecrypt);                   //16进制to byte[];

            RijndaelManaged rDel = new RijndaelManaged();

            rDel.Key = keyArray;

            rDel.Mode = CipherMode.ECB;

            rDel.Padding = PaddingMode.PKCS7;

            ICryptoTransform cTransform = rDel.CreateDecryptor();

            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

            return UTF8Encoding.UTF8.GetString(resultArray);

        }

        #endregion AES解密

        

        #region 转码

        /**

         * 将16进制字符串还原为字节数组.

         */

        public static byte[] HexStrToBytes(string s)

        {

            byte[] bytes;

            bytes = new byte[s.Length / 2];

            for (int i = 0; i < bytes.Length; i++)

            {

                bytes[i] = (byte)Convert.ToInt32(s.Substring(2 * i,2),16);

            }

            return bytes;

        }

        /**

         * 将字节数组转换为16进制字符串的形式.

         */

        public static string BytesToHexStr(byte[] bcd)

        {

            StringBuilder s = new StringBuilder(bcd.Length * 2);

            for (int i = 0; i < bcd.Length; i++)

            {

                s.Append(BcdLookup[(bcd[i] >> 4) & 0x0f]);

                s.Append(BcdLookup[bcd[i] & 0x0f]);

            }

            return s.ToString();

        }

        #endregion

    }

头像

MAMP pro mysql 启动失败

网上有很多关于Mac os 安装MAMP PRO后出现数据库无法启动的故障处理办法,然而每个都试了,完全不能解决问题,错误提示是:

InnoDB: The error means the system cannot find the path specified.

InnoDB: If you are installing InnoDB, remember that you must create

InnoDB: directories yourself, InnoDB does not create them.

InnoDB: Error: could not open single-table tablespace file ./mysql/slave_relay_log_info.ibd

InnoDB: We do not continue the crash recovery, because the table may become

InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.

InnoDB: To fix the problem and start mysqld:

InnoDB: 1) If there is a permission problem in the file and mysqld cannot

InnoDB: open the file, you should modify the permissions.

InnoDB: 2) If the table is not needed, or you can restore it from a backup,

InnoDB: then you can remove the .ibd file, and InnoDB will do a normal

InnoDB: crash recovery and ignore that table.

InnoDB: 3) If the file system or the disk is broken, and you cannot remove

InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf

InnoDB: and force InnoDB to continue crash recovery here.

170324 11:18:41 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

出现这个情况是之前已经安装过MAMP PRO,从倒数第三行的提示来看需要修改my.cnf,使用mamp打开mysql是可以正常启动的,但是Hosts无法修改路径及配置多个测试域名,每次都要去修改一大堆东西,很不方便,下面我们来解决MAMP PRO mysql无法启动的问题;

其实原因初步判断应该是在MAMP PRO的应用管理端,从应用程序管理文件夹,找到MAMP PRO,显示包内容,完成访问路径/Applications/MAMP PRO/MAMP PRO.app/Contents/Resources/my.cnf,复制你对应版本的my.cnf文件到桌面,修改innodb force recovery=2;将原来的备份,替换对应版本的my.cnf,修改完成回到MAMP PRO控制面板,点击mysql,成功启动!

因为我的是多版本,所以打开的是my56.cnf

mamp-sql1
最后来张成功启动的截图,有图有真相

mamp-sql2

作者:cabin_ysl
链接:https://www.jianshu.com/p/4f6644c644ba
来源:简书

头像

Mac 快捷键调整成windows系统一样

Mac OS系统与Windows系统在使用上存在较大差异,尤其在快捷键方面,比如Windows系统中的“复制”快捷键为“ctrl+c”,而在Mac OS系统中则为“command+c”,因此作为习惯了Windows系统的我们,在初次接触Mac OS系统时会觉得有些手足无措。

系统设置-键盘-修饰键

靠近空白键的command换成option,当alt键用

option换成control

control换成command,当ctrl键用

输入法的切换也可以设置成command+空格

这样mac键盘就可以当win键盘用了,pc上怎么耍mac上就怎样耍。

本文转载:https://www.zhihu.com/question/53291792

头像

解决Mac上「应用程序“xxx”不能打开」的问题

除了在 Mac App Store 下载应用之外,有时候我们也会直接在一些网站上下载应用,而这就会出现一些稀奇古怪的问题,比如我下载的应用是经过压缩的打包文件,解压缩之后会发现软件打不开,显示的弹窗信息如下:

图1

其实这个错误主要是解压缩软件在解压文件时,破坏了应用里面可执行文件的权限造成的,当然修复起来也不复杂,首先在应用上点击右键,选择「显示包内容」:

图2

之后依次展开「Contents」-「MacOS」,找到对应文件夹下的文件,比如说截图中显示的Cinch。如果权限正确的话,该文件应该是一个Unix可执行的文件,而不是现在这种类型不明的文件。

图3

接下来打开终端,直接输入以下代码(注意 +x 前后都有空格):

chmod +x 

之后再将文件Cinch拖入终端(为了输入完整的执行路径),完整的命令如下:

chmod +x /Users/liyu/Downloads/cinch/Cinch.app/Contents/MacOS/Cinch

图4

最后回车,这时Finder中原本不明类型的文件现在变成了Unix可执行文件,图标也变成正常的了。

图5

重新打开下载的软件,你会发现下载的程序可以正常使用并执行了!

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

头像

在Visual Studio 2019中修改项目名的方法

1.需求场景

场景一:开始创建项目时,瞎起了一个名字,等后面开发了一部分功能后突然想改名。

场景二:想从一个老项目的基础上开发一个新项目。

2.操作步骤

2.1 重命名解决方案

【解决方案】右键选择【重命名】,将OldSlnName重命名为NewSlnName

2.2 重命名项目名

【项目(OldProject)】右键选择【重命名】,将OldProject重命名为NewProject

2.3 修改程序集名称及命名空间

【项目(NewProject)】右键选择【属性】

2.4 全局替换项目名

在整个解决方案下搜索【旧项目名(OldProject)】,将其替换为【新项目名(NewProject)】

2.5 修改项目文件夹名称

关闭Visual Studio;

在文件管理器中找到项目文件夹,将【旧项目文件夹名(OldProject)】修改为【新项目文件夹名(NewProject)】

2.6 修改.sln文件

在项目文件夹下找到对应.sln文件,用文本编辑器打开;

将文件中的旧项目名称修改为新项目名称

修改完毕。

头像

XPath Helper:chrome爬虫网页解析工具 Chrome插件

XPath helper插件功能介绍

XPath Helper插件有什么用?
google插件XPath Helper可以支持在网页点击元素生成xpath,整个抓取使用了xpath、正则表达式、消息中间件、多线程调度框架(参考)。xpath 是一种结构化网页元素选择器,支持列表和单节点数据获取,他的好处可以支持规整网页数据抓取。
如果我们要查找某一个、或者某一块元素的xpath路径,可以按住shift,并移动到这一块中,上面的框就会显示这个元素的xpath路径,右边则会显示解析出的文本内容,并且我们可以自己改动xpath路径,程序也会自动的显示对应的位置,可以很方便的帮助我们判断我们的xpath语句是否书写正确。

XPath helper插件下载安装

XPath helper插件哪里可以下载?你可以从chrome应用商店里找到chrome爬虫插件,如果你的chrome应用商店无法打开,你可以在本站的下方找到chrome爬虫插件下载地址。

XPath helper插件怎么安装?
1. 如果你能够打开chrome应用商店,并且可以找到chrome爬虫插件,那么直接点击“添加至chrome”,如下图所示:
XPathhelper

2.如果你的chrome应用商店无法打开,你从本站或者其他途径获得了chrome爬虫插件,那么就选择离线安装该插件。由于chrome爬虫插件同其他chrome插件一样都是CRX格式的,所以具体的安装方法请参照:怎么在谷歌浏览器中安装.crx扩展名的离线Chrome插件? 如果CRX格式插件不能离线安装怎么办

Xpath helper插件使用说明

1.在chrome浏览器安装好xpath helper插件后,打开某个网页(以搜狐为例)拷贝目标页面元素的XPATH,如下图所示:
拷贝xpath

2.点击 Ctrl + Shift + X 激活 XPath Helper 的控制台,然后您可以在 Query 文本框中输入相应 XPath 进行调试了,提取的结果将被显示在旁边的 Result 文本框中,如下图所示:
xpath helper解析页面

1。打开一个新的标签,并导航到你最喜欢的网页。
2。按Ctrl-Shift键-X以打开XPath辅助控制台。
3。按住Shift键鼠标在页面上的元素。查询框会不断更新,以显示鼠标指针下面的元素充分XPath查询。结果框其右侧将显示评价结果的查询。
4。如果需要的话,可以直接在控制台编辑XPath查询。在结果框中将立即反映任何变化。
5。再次按Ctrl-Shift键-X关闭控制台

XPath helper插件注意事项

 

虽然XPath Helper插件使用非常方便,但它也不是万能的,有两个问题:
  1.XPath Helper 自动提取的 XPath 都是从根路径开始的,这几乎必然导致 XPath 过长,不利于维护;
  2.当提取循环的列表数据时,XPath Helper 是使用的下标来分别提取的列表中的每一条数据,这样并不适合程序批量处理,还是需要人为修改一些类似于*标记等。
不过,合理的使用Xpath,还是能帮我们省下很多时间的!
头像

微信小程序实现”淡入淡出”、”滑动渐入渐出”效果

因为是想实现通用的效果,所以我把方法放在app.js里。主要原理是通过控制透明度显示。

以下是代码:

//渐入,渐出实现
show: function (that, param, opacity, duration=1800) {
var animation = wx.createAnimation({
//持续时间1800ms
duration: duration,
timingFunction: ‘ease’,
});
//var animation = this.animation
animation.opacity(opacity).step()
//将param转换为key
var json = ‘{“‘ + param + ‘”:””}’
json = JSON.parse(json);
json[param] = animation.export()
//设置动画
that.setData(json)
},
//滑动渐入渐出
slideupshow: function (that, param, px, opacity) {
var animation = wx.createAnimation({
duration: 800,
timingFunction: ‘ease’,
});
animation.translateY(px).opacity(opacity).step()
//将param转换为key
var json = ‘{“‘ + param + ‘”:””}’
json = JSON.parse(json);
json[param] = animation.export()
//设置动画
that.setData(json)
},
//向右滑动渐入渐出
sliderightshow: function (that, param, px, opacity) {
var animation = wx.createAnimation({
duration: 800,
timingFunction: ‘ease’,
});
animation.translateX(px).opacity(opacity).step()
//将param转换为key
var json = ‘{“‘ + param + ‘”:””}’
json = JSON.parse(json);
json[param] = animation.export()
//设置动画
that.setData(json)
}
以下是页面使用方法:
wxml
<view  animation=”{{showBgp}}” class=”bgp” >这里是效果</view>
css
.bgp{
opacity:0; //主要是这个,其它可自定义
}
js中使用
getApp().show(this, ‘showBgp’, 1,1800);