- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在一个简单的 MySQL 复制主从配置中,我遇到了一个问题,即主尝试在重新启动时作为从属连接到自身。
所以当我在 Master 上重新启动 MySQL 时,我看到与试图复制到自身的同一台服务器相关的错误,我必须在每次重新启动 MySQL 时手动运行 mysql -e "STOP SLAVE;"
.
如何永久禁用 master 上的 slave?
这是 my.cnf
的相关部分:
## Logging
binlog_format = mixed
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
pid_file = /var/run/mysqld/mysqld.pid
log_error = /var/log/mysql/error.log
#general_log = 0
#general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
expire_logs_days = 14
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
## Replication
server_id = 200
## Master Configuration
binlog-do-db = my_db_1
binlog-do-db = my_db_2
binlog-do-db = my_db_3
binlog-do-db = my_db_4
binlog-do-db = my_db_5
binlog-do-db = my_db_6
另外,当我运行 SELECT * FROM mysql.user;
时,我看不到 repl
用户据称是 Master 上的“奴隶”。
但是,我确实看到 localhost
有复制授权:
mysql> select Host, User, grant_priv, Repl_slave_priv, Repl_client_priv from mysql.user;
+-----------------+---------------+------------+-----------------+------------------+
| Host | User | grant_priv | Repl_slave_priv | Repl_client_priv |
+-----------------+---------------+------------+-----------------+------------------+
| localhost | root | Y | Y | Y |
| localhost | mysql.sys | N | N | N |
这是我在重新启动时看到的错误示例(在我在主服务器上运行 STOP SLAVE;
之前):
2016-09-01T15:22:23.845505Z 384 [Note] Access denied for user 'repl'@'192.168.100.200' (using password: YES)
2016-09-01T15:22:23.845761Z 1 [ERROR] Slave I/O for channel '': error connecting to master 'repl@192.168.100.200:3306' - retry-time: 30 retries: 8, Error_code: 1045
2016-09-01T15:22:50.191636Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 6843ms. The settings might not be optimal. (flushed=15210 and evicted=0, during the time.)
除此之外,复制运行良好。对 Master 的写入完美地显示在真实的只读 Slave 上。
完整的my.cnf
:
[mysql]
default_character_set = utf8
[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
symbolic-links = 0
## Custom Configuration
skip_external_locking = 1
skip_name_resolve
open_files_limit = 20000
## Cache
thread_cache_size = 16
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 4M
## Per-thread Buffers
sort_buffer_size = 32M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
join_buffer_size = 2M
## Temp Tables
tmp_table_size = 1024M
max_heap_table_size = 1024M
## Networking
back_log = 250
max_connections = 512
max_connect_errors = 100000
max_allowed_packet = 128M
interactive_timeout = 1800
wait_timeout = 1800
character_set_client_handshake = FALSE
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
### Storage Engines
default_storage_engine = InnoDB
innodb = FORCE
## MyISAM
key_buffer_size = 128M
myisam_sort_buffer_size = 16M
## InnoDB
innodb_buffer_pool_size = 46G
innodb_buffer_pool_instances = 64
innodb_log_files_in_group = 2
innodb_log_buffer_size = 32M
innodb_log_file_size = 64M
innodb_file_per_table = 1
innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 1
## Logging
binlog_format = mixed
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
pid_file = /var/run/mysqld/mysqld.pid
log_error = /var/log/mysql/error.log
#general_log = 0
#general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
expire_logs_days = 14
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
## Replication
# Master Server ID:
server_id = 200
# Slave Server ID:
# server_id = 300
## Master Configuration
# Comment out on Slave
binlog-do-db = db_1
binlog-do-db = db_2
binlog-do-db = db_3
binlog-do-db = db_4
binlog-do-db = db_5
binlog-do-db = db_6
## Slave Configuration
# Uncomment the following on Slave
# relay-log = /var/log/mysql/mysql-relay-bin.log
# binlog-do-db = db_1
# binlog-do-db = db_2
# binlog-do-db = db_3
# binlog-do-db = db_4
# binlog-do-db = db_5
# binlog-do-db = db_6
# log_slave_updates = 1
# read_only = 1
# slave_skip_errors = 1062
[mysqld_safe]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
symbolic-links = 0
pid_file = /var/run/mysqld/mysqld.pid
log_error = /var/log/mysql/error.log
还有:
mysql> SHOW GLOBAL VARIABLES LIKE '%master_info_repository%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| master_info_repository | FILE |
+------------------------+-------+
最佳答案
为了管理这种设置,我建议使用 MHA 管理器。对于这种特定情况,您可能需要清理 master_info_repository
(默认位于 master.info 中)。此外,您可以在 master 主机上使用 --skip-slave-start
来避免故障转移后出现这种情况。
关于mysql - 为什么 Master 认为它是 Reboot 的 Slave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275822/
有的时候我们手机刚开机时,手机屏幕上出现黑色背景,第一行有文字提示reboot system now。很多人都不知道reboot system now什么意思?更别说说如何去解决了。下面就来介绍几种
当嵌入式系统出现严重问题时,我倾向于将错误写入闪存中的特殊日志文件,然后重新启动(如果内存不足,则没有太多选择)。 我意识到这可能会出错,所以我尝试将其最小化(通过在最终写入期间不分配任何内存,并提高
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Any way to “reboot” the JVM? 我在 JRE/lib/ext 文件夹中添加了 tools.
我想新建文件 libdvm.so(在对 vm 代码进行少量更改之后)。我在构建后得到了文件。我使用 将文件推送到模拟器中 $ adb push libdvm.so /system/lib/libdvm
假设您的 bash 脚本中有这两个语句: # No. 1 MSG="Automatic reboot now." echo $MSG # No. 2 MSG=""Automatic reboot no
我在 crontab 中有这个命令,使用 Ansible cron 模块添加。“@reboot supervisord -c *conffilepath”,但这在重启过程中不起作用。但是在手动执行时工
我正在尝试在 SUSE 重新启动时执行名为“测试”的脚本。所以我把这个简单的脚本放在'/etc/init.d'代码是这样的 #!/bin/bash # ScriptName=testing cat >
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 8 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试通过每晚运行的 shell 脚本在我的设备上运行一些测试包,为此我需要运行 adb reboot 命令。我的问题是“adb reboot”命令确实使系统重新启动,但它永远不会完成(如果我手动
我有一个 Python 脚本,它只是简单地编写一些文本并将其保存到一个文件中 #! /usr/bin/python3 def main(): filename = '/home/user/t
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
有没有办法重启JVM?如实际上并没有退出,而是关闭并重新加载所有类,然后从顶部运行 main? 最佳答案 您最好的选择可能是在循环中运行 java 解释器,然后退出。例如: #!/bin/sh whi
我目前有一个场景,我需要使用 burn 执行以下操作 安装 Windows 成像组件 安装 Windows Installer 4.5 安装 .Net 4 Web 运行我的安装程序(使用 Wix 3.
假设情况:假设我在 ASP.Net Web 系统中使用了一个第 3 方 .net 程序集,我正在处理它,但时不时会崩溃。当它这样做时,所有对它的调用都会抛出异常,直到系统重新启动。显然,这有点次优。
我用过 this测试我自己的应用程序重启广播的问题。即, C:\Eclipse\sdk\platform-tools>adb shell am broadcast -a android.intent
我已经创建了无障碍服务,我想调用 OnAccessibilityEvent()仅当“关机”菜单出现时,我的目标是调用 TTS 引擎,以便仅当屏幕上出现此菜单时才让手机通话。 我需要了解的是如何检测这唯
我试图覆盖 box-sizing: border-box; 属性,但它仍然保持不变。 我已经尝试使用内联 css,例如:box-sizing: initial !important;,但它没有用。 正
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭10 年前。 此问题似乎与 a specific programming problem, a sof
我有一个 python 项目,我需要使用 uWSGI 在屏幕上运行,如果我运行脚本: screen -d -m uwsgi --emperor "/home/rrcms/wsgi.ini" --soc
我发现我的 android 图像存在问题,命令 adb reboot bootloader 只是重新启动 android,而不是进入引导加载程序模式。 为了解决这个问题,我做了一些研究,发现实际上有两
我是一名优秀的程序员,十分优秀!