我想在启用 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)
另一件事是,在进行备份之前,我刚刚清除了主服务器上的二进制日志。自动 …
我一直试图在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) 我在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可以是任何值.
如何在sudo的shell脚本中运行命令?此脚本将由cron作业运行,因此手动输入密码不应有人为干预.
如何在 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) 我想要一个 bash shell 脚本,我可以使用 cron 作业运行它来检查远程服务器上的 mysql 是否正在运行。如果是,则什么都不做,其他启动服务器。
cronjob 将每分钟检查远程服务器是否存在实时(或非)mysql。我可以自己编写 cron 作业,但我需要有关检查远程 mysql 是否启动或关闭的 shell 脚本的帮助。检查后的响应是向上还是向下并不重要。但是检查很重要。
我有一个简单的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.
在 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)