小编Dev*_*von的帖子

如何用另一个根ebs卷替换root ebs卷?

我不小心格式化了我的系统,并且还删除了ec2卷的访问键.所以我停止了实例并分离了ebs卷.
但是我无法将它作为root(/ dev/sda1)附加到另一个ec2实例.任何人都可以指导我完成它吗?我的所有数据和服务器文件都在卷中.
我安装了第一个ebs卷并在第二个实例上浏览了那里的文件.它们都完好无损.如果它不能作为根卷安装,我需要一种方法来从卷中获取所有的mysql数据,因为它上面有许多wordpress网站.我可以访问wordpress文件,但我不知道如何从实例中获取数据库.
任何解决方案都会挽救我的生命......非常感谢你

amazon-ec2 amazon-web-services

17
推荐指数
3
解决办法
9166
查看次数

获取关联php数组的第n个键

我想在特定条目中获取关联PHP数组的KEY值.具体来说,我知道我需要的KEY是数组中第二个条目的关键.

例:

$array = array('customer' => 'Joe', 'phone' => '555-555-5555');
Run Code Online (Sandbox Code Playgroud)

我正在建设的是超级动态的,所以我不知道第二个条目是"电话".抓住它有一个简单的方法吗?

简而言之,(我知道它不起作用,但是......)我正在寻找功能相当的东西: key($array[1]);

php arrays associative-array key

15
推荐指数
1
解决办法
1万
查看次数

使用PHP使用JWT为Google云端存储签名URL

我刚刚开始将我的Google云存储代码从API 1.0版升级到2.0版,我遇到了一些麻烦.

在1.0版本中,我使用签名URL,使用.p12文件取得了巨大成功.然而,在新版本中已弃用,我必须使用Firebase/php-jwt,而不是使用JSON文件.

问题是它只是不工作,我收到错误:

<?xml version='1.0' encoding='UTF-8'?><Error><Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.</Message>
<StringToSign>PUT

image/png
1483626991
/myBucket/folder/test.PNG</StringToSign></Error>
Run Code Online (Sandbox Code Playgroud)

这是用于签名的简化代码.

$string = ($method . "\n" .
          $contentMd5 . "\n" .
          $contentType . "\n" .
          $expiration . "\n" .
          $file);

$signedURL = base64_encode(Firebase\JWT\JWT::encode($string,
        file_get_contents($credentialsFilePath)));
Run Code Online (Sandbox Code Playgroud)

收到signedURL后,我使用正确的数据构建一个URL.我从1.0和2.0更改的唯一部分是您对URL进行签名的部分.此外,我已经检查了响应的"StringToSign"字段中的字符串与我正在签名的字符串完全相同.

在1.0版本中,我签署了这样的URL:

$signedURL = base64_encode((new Google_Signer_P12(
        file_get_contents($p12FilePath),
        'notasecret'
      ))->sign($string));
Run Code Online (Sandbox Code Playgroud)

所有这一切让我相信我正在唱出正确的内容,但是以错误的方式使用JWT功能.还有其他人这样做过吗?你是怎么做到的?

万一有趣的是这是我构建的URL(与1.0一起使用):

$returnArr['url'] = "https://{$bucket}.commondatastorage.googleapis.com/"
    . $prefix . '/' . rawurlencode($file)
    . "?GoogleAccessId=" . rawurlencode($serviceEmail)
    . …
Run Code Online (Sandbox Code Playgroud)

php cloud google-cloud-storage google-api-php-client

14
推荐指数
1
解决办法
859
查看次数

MySQL Workbench高DPI

所以我在一个新的高DPI,高分辨率设置中使用MySQL工作台.如果我允许MySQL Workbench使用Window的DPI设置,除了编辑器之外,字体变得模糊.

如果我禁用DPI设置(在兼容性中)并在Workbench首选项中提高字体大小,除了左侧菜单(架构列表,表列表,对象信息)这是非常小的字体外,它看起来很好.有没有人知道Workbench的任何变通方法或替代方法?否则,很难继续使用具有高分辨率显示器的Workbench.HeidiSQL遇到了相同的DPI模糊字体问题.所以这要么是头痛还是眯眼.

fonts dpi mysql-workbench

13
推荐指数
3
解决办法
6222
查看次数

在bash中将人类可读转换为字节

所以我试图在linux中分析非常大的日志文件,我已经看到了大量的解决方案,但是记录数据的程序不允许输出格式化因此它只以人类可读的格式输出(我知道,多么痛苦).所以问题是:如何使用像awk这样的东西将人类可读转换为字节:

所以转换这个:

937
1.43K
120.3M
Run Code Online (Sandbox Code Playgroud)

至:

937
1464
126143693
Run Code Online (Sandbox Code Playgroud)

我负担得起,我期待一些舍入错误.

提前致谢.

PS只要它可以提供内联转换,就不必是awk.

我找到了这个,但给出的awk命令似乎无法正常工作.它输出类似534K"0"的东西.

我还找到了一个使用sed和bc的解决方案,但因为它使用bc它的效率有限,这意味着它一次只能使用一列,所有数据都必须适合bc,否则就会失败.

sed -e 's/K/\*1024/g' -e 's/M/\*1048576/g' -e 's/G/\*1073741824/g' | bc

linux bash awk human-readable

11
推荐指数
4
解决办法
8508
查看次数

MySQL按主键顺序排序

某些SQL服务器允许使用通用语句,例如ORDER BY PRIMARY KEY.我不认为这适用于MySQL,是否有任何此类解决方法允许跨多个表自动选择或是否需要查询查询来确定主键?

我一直在努力的解决方法涉及SHOW COLUMNS FROM在运行查询之前调用.有更有效的方法吗?MySQL可以在选择过程中确定表的主键吗?

更新: 正如戈登指出的那样,在MySQL或SQL中没有官方的方法可以做到这一点.SAP具有自定义功能.有一些解决方法,例如与John 一起工作SHOW COLUMNS FROM tableinformation_schema正如John指出的那样.

mysql sql sql-order-by primary-key

9
推荐指数
1
解决办法
1万
查看次数

为什么MySQL SELECT语句中甚至允许"LIMIT 0"?

Limit 0, 1000返回前1,000个结果,但LIMIT 0返回0结果.

这不是非常直观的imho.例如,dumb old me认为删除1000将删除SELECT查询的上限,从而返回所有结果.

为什么有人甚至想要查询MySQL的0结果?

mysql database

9
推荐指数
1
解决办法
7068
查看次数

带有可选侧箱的流体布局

我想要一个有三个框(两个可选)的布局,如下所示:

[侧箱1] [主要内容

[边框2].主要内容]

要么

[如果没有提供侧箱,主要内容跨度为100%]

我希望主要内容框跨越#load(减去边距)可用的整个高度和宽度,除非边框在那里,然后我希望它只跨越那些框(及其右边距).

我的CSS:

#load {
    margin: 10px;
    height: 100%;
    min-width: 1080px;
}
#primary,#secondaryOne,#secondaryTwo {
    border-radius: 8px;
    background: #f5f5f5;
    border: 1px solid #ccc;
}
#primary {
    float: right;
    height: inherit;
    width: 75%;
    height:500px;
    background:red;
}
#secondaryOne,#secondaryTwo {
    min-width: 250px;
    max-width: 300px;
    height: 220px;
    margin-right: 10px;
    width: 20%;
    clear:left;
    float:left;
}
#secondaryTwo {
    margin-top: 10px;
}
Run Code Online (Sandbox Code Playgroud)

简单的HTML

<div id='load'>
    <div id='primary'></div>
    <div id='secondaryOne'></div>
    <div id='secondaryTwo'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

问题

  1. *已解决*如果缺少侧箱,则#primary会覆盖整个宽度.

  2. *已解决*有没有办法在#primary的左侧排列两个侧箱(#secondaryOne,#secondaryTwo)而不将它们嵌套在一个单独的div中?如果我使用float:left on …

html css

7
推荐指数
1
解决办法
112
查看次数

为什么这个字符串不能用于二进制转换?

我将IPv6地址存储为BINARY(16)并尝试使用十六进制表示来搜索它们,例如:FFFFFFFF000000000000000000000000.

这有效:

SELECT * FROM ipv6 WHERE HEX(address) = 'FFFFFFFF000000000000000000000000'
Run Code Online (Sandbox Code Playgroud)

但是,这不是:

SELECT * FROM ipv6 WHERE address = CONV('FFFFFFFF000000000000000000000000', 16, 2)
Run Code Online (Sandbox Code Playgroud)

没有错误消息,只是不返回任何结果.MySQL无法使用CONV()?处理转换?

我可以使用第一个选项,但我想第二个选项在大型数据库中要快得多,因为它不必转换表中的每个地址.

更新:

UNHEX()杰克指出,似乎工作得很好.标准转换(自5.6起)使用CONV()似乎最大为8字节(64位)或十六进制形式,FFFFFFFFFFFFFFFF因此它无法处理完整的128位ipv6地址.

经过一番商议,我相信Salman的答案是处理十六进制的最佳方法(使用十六进制文字).但是,unhex()如果在PHP中使用参数绑定,则需要afaik,因为将添加引号并阻止MySQL将其作为文字与字符串进行评估.

因此,您必须为您选择最佳解决方案.十六进制文字有点快,但是如果你正在处理用户输入,那么带有参数绑定的unhex可能是最好的解决方案.

mysql sql string binary

6
推荐指数
1
解决办法
585
查看次数

工匠修补匠:mkdir()许可被拒绝

Laravel版本5.0.33

> php artisan tinker

  [ErrorException]            
  mkdir(): Permission denied  
Run Code Online (Sandbox Code Playgroud)

这是在生产服务器上,我试图用修补程序测试一个命令作为Web用户.这个用户拥有基本路径中的每个目录,因此我不确定在运行artisan tinker时是否尝试创建了哪个目录.

laravel artisan

6
推荐指数
3
解决办法
2151
查看次数