小编The*_*gia的帖子

MySQL使用GTID时出现错误1236

我想在启用 GTID 的情况下创建 Percona 服务器的副本,但当我显示从属状态时出现此错误:

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'
Run Code Online (Sandbox Code Playgroud)

通常,我会停止我的从站,重置它,重置主站(在从站上),然后从主站获取新的 GTID_PURGED 值。但这一次,master 有一个非常不寻常的值,我不知道如何确定使用哪一个:

mysql> show master status\G
*************************** 1. row ***************************
             File: mysqld-bin.000283
         Position: 316137263
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546512667
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

从具有新备份副本的从属设备中,我得到以下信息:

root@ubuntu:/var/lib/mysql# cat xtrabackup_binlog_info
mysqld-bin.000283       294922064       1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546400960
Run Code Online (Sandbox Code Playgroud)

另一件事是,在进行备份之前,我刚刚清除了主服务器上的二进制日志。自动 …

mysql replication percona gtid

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

在yii中声明全局变量并在控制器中使用它们

我一直试图在yii中声明一个布尔值的全局变量,并在控制器中的不同动作函数中更改其值.下面是我想要实现的一个例子.

在.../config/main.php我添加了以下数组:'params'=> array('login'=>'true',),

在.../protected/controller/testController.php我添加了以下代码:

<?php
    class ApiController extends Controller{
public $x = '';

public function actionDisplay(){
$x=Yii::app()->params['login']; //so x now has the value "true"
echo $x; //this display "true" when i run this controller on this function
}

public function actionDisplay2(){
global $x;
    echo $x; //this for some reason does not contain the value true even if x is global
}
Run Code Online (Sandbox Code Playgroud)

如何在不必将每个函数中的值赋给全局变量的情况下实现此目的?如果我调用第二个函数,它会抛出一个错误,即x未定义.我的计划是像在java中那样使用全局变量

public class Display{

public String x = " ";

public static void Display(){
x = "True"; //global variable …
Run Code Online (Sandbox Code Playgroud)

php boolean function global-variables yii

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

Bash正则表达式字符串变量匹配

我在perl中编写了以下脚本,工作得很好.但我试图用bash实现同样的目的.

    #!/usr/bin/perl

use 5.010;
use strict;

INIT {
    my $string = 'Seconds_Behind_Master: 1';
    my ($s) = ($string =~ /Seconds_Behind_Master: ([\d]+)/);
    if ($s > 10) {
        print "Too long... ${s}";
    } else {
        print "It's ok";
    }
}

__END__
Run Code Online (Sandbox Code Playgroud)

如何使用bash脚本实现此目的?基本上,我希望能够读取和匹配字符串"Seconds_Behind_Master:N"末尾的值,其中N可以是任何值.

regex bash perl

4
推荐指数
2
解决办法
7631
查看次数

在bash shell中使用sudo运行命令

如何在sudo的shell脚本中运行命令?此脚本将由cron作业运行,因此手动输入密码不应有人为干预.

shell cron sudo

3
推荐指数
2
解决办法
6301
查看次数

从文件中读取用户名和密码

如何在 Python 中从文件中逐行读取文本,例如用户名和密码?例如,我可以在 shell/bash 中实现这一点:

#!/bin/bash

AUTH='/authentication/account.txt'
U=$(sed -n 1p ${AUTH})
P=$(sed -n 2p ${AUTH})
Run Code Online (Sandbox Code Playgroud)

在文件 /authentication/account.txt 中是我的用户名和密码,如下所示:

username
userpass
Run Code Online (Sandbox Code Playgroud)

python

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

用于检查 mysql 是否启动或关闭的 Shell 脚本

我想要一个 bash shell 脚本,我可以使用 cron 作业运行它来检查远程服务器上的 mysql 是否正在运行。如果是,则什么都不做,其他启动服务器。

cronjob 将每分钟检查远程服务器是否存在实时(或非)mysql。我可以自己编写 cron 作业,但我需要有关检查远程 mysql 是否启动或关闭的 shell 脚本的帮助。检查后的响应是向上还是向下并不重要。但是检查很重要。

mysql shell cron

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

Linux bash脚本表现得很奇怪

我有一个简单的bash脚本,可以监视mysql是up还是down.如果它关闭,我想也阻止HAProxy运行.下面是我简单的bash脚本:

#!/bin/bash

nc -z 127.0.0.1 3306
rt_val=$?
msg=$(sudo service haproxy stop);
if [ $rt_val != 0 ]; then
    eval $msg
    exit 3
else
    exit 0
fi
Run Code Online (Sandbox Code Playgroud)

MySQL运行或不运行的部分工作得很好.停止HAProxy部分似乎有问题.发生的事情是当mysql停止时HAProxy停止.但是当我启动MySQL和HAProxy时,即使MySQL启动并运行,脚本似乎也会继续停止HAProxy.

linux bash shell

2
推荐指数
1
解决办法
116
查看次数

bash 中的哈希集或关联数组

在 bash 脚本中,我如何实现以下目标:

假设我们有一个关联数组,如下所示:

servers = (db-test-1=64, db-test-2=128, db-test-3=32)
Run Code Online (Sandbox Code Playgroud)

我希望能够读取服务器的名称以及代表服务器 RAM 大小的服务器值。

例如,当我循环遍历上面所谓的关联数组时(我知道上面的语法不正确,但你明白了),我想将服务器名称存储在一个名为 server_name 的变量中,以及关联的 RAM 大小与服务器一起放入名为 mem_size 的变量中。因此,当我回显时,for循环的第一次迭代应该产生以下结果:

for i in "${containers[@]}"
    do
        \\some code here to get server names and memory size from the array
        echo "Server Name is" $server_name
        echo "Server Memory size is" $mem_size
done
Run Code Online (Sandbox Code Playgroud)

结果应该是:

Server Name is db-test-1
Server Memory Size is 64
Run Code Online (Sandbox Code Playgroud)

bash shell hashset

2
推荐指数
1
解决办法
1950
查看次数

标签 统计

shell ×4

bash ×3

cron ×2

mysql ×2

boolean ×1

function ×1

global-variables ×1

gtid ×1

hashset ×1

linux ×1

percona ×1

perl ×1

php ×1

python ×1

regex ×1

replication ×1

sudo ×1

yii ×1