科技爱好者博客 https://www.lxx1.com 分享树莓派(Raspberry Pi)、Arduino、Linux、服务器使用配置 Sat, 11 Jul 2020 15:00:35 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.4.2 树莓派/boot分区内的文件有什么用? https://www.lxx1.com/5257 https://www.lxx1.com/5257#respond Sat, 11 Jul 2020 15:00:32 +0000 https://www.lxx1.com/?p=5257 树莓派/boot分区内的文件有什么用?,首发于科技爱好者博客

树莓派引导文件存储在SD卡的第一个分区中,即/boot分区,该分区的文件系统是FAT,所以可以在Windows…Continue reading 树莓派/boot分区内的文件有什么用?

树莓派/boot分区内的文件有什么用?,首发于科技爱好者博客

]]>
树莓派/boot分区内的文件有什么用?,首发于科技爱好者博客

树莓派引导文件存储在SD卡的第一个分区中,即/boot分区,该分区的文件系统是FAT,所以可以在Windows,macOS和Linux设备上读取这个分区。

当树莓派通电时,它将从启动分区(/boot)中加载各种文件以启动各种处理器,然后启动Linux内核。

当Linux启动后,启动分区将挂载为/boot

/boot分区内都有哪些文件?

分区内的文件如下:

bcm2708-rpi-b.dtb bcm2711-rpi-4-b.dtb fixup.dat overlays
bcm2708-rpi-b-plus.dtb bootcode.bin fixup_db.dat start4cd.elf
bcm2708-rpi-cm.dtb cmdline.txt fixup_x.dat start4db.elf
bcm2708-rpi-zero.dtb config.txt start4.elf
bcm2708-rpi-zero-w.dtb COPYING.linux issue.txt start4x.elf
bcm2709-rpi-2-b.dtb fixup4cd.dat kernel7.img start_cd.elf
bcm2710-rpi-2-b.dtb fixup4.dat kernel7l.img start_db.elf
bcm2710-rpi-3-b.dtb fixup4db.dat kernel8.img start.elf
bcm2710-rpi-3-b-plus.dtb fixup4x.dat kernel.img start_x.elf
bcm2710-rpi-cm3.dtb fixup_cd.dat LICENCE.broadcom
树莓派/boot分区

/boot分区内的文件都有什么用?

bootcode.bin

这是引导加载程序,由SoC在引导时加载,它执行一些非常基本的设置,然后加载其中一个start*.elf文件。Raspberry Pi 4上未使用bootcode.bin,因为它已由板载EEPROM中的启动代码替换。

start.elf,start_x.elf,start_db.elf,start_cd.elf,start4.elf,start4x.elf,start4cd.elf,start4db.elf

这些是二进制Blob(固件),已加载到SoC中的VideoCore上,然后接管启动过程。 start.elf是基本固件,start_x.elf包括相机驱动程序和编解码器,start_db.elf是固件的调试版本,start_cd.elf是简化版本,不支持编解码器和3D之类的硬件模块,并且在gpu_mem=16中指定时使用config.txt

start4.elfstart4x.elfstart4cd.elf,和start4db.elf是树莓派4的固件文件。

fixup* .dat

这些是链接器文件,与start*.elf上一节中列出的文件配对。

cmdline.txt

引导时,内核命令行会传递到内核。

例如:

pi@raspberrypi:/boot $ cat cmdline.txt 
console=serial0,115200 console=tty1 root=PARTUUID=d9b3f436-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

config.txt

包含许多用于设置树莓派的配置参数。

例如:

pi@raspberrypi:/boot $ cat config.txt
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

issue.txt

一些基于文本的管家信息,其中包含分发的日期和git commit ID。

例如:

pi@raspberrypi:/boot $ cat issue.txt 
Raspberry Pi reference 2019-09-26
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 80d486687ea77d31fc3fc13cf3a2f8b464e129be, stage4

ssh或ssh.txt

如果存在此文件,则将在启动时启用SSH。内容无关紧要,可以为空。否则默认情况下禁用SSH。

wpa_supplicant.conf

这是用于配置无线网络设置的文件(如果硬件具备此功能)。编辑国家代码和网络部分以适合您的情况。使用方式可以参考这篇文章设置树莓派wifi的几种方式

设备树文件

有各种设​​备树blob文件,其扩展名为.dtb。它们包含树莓派各种模型的硬件定义,并在启动时用于根据检测到的树莓派模型来设置内核。

内核文件

引导文件夹将包含用于不同树莓派型号的各种内核映像文件:

文档名称 处理器 Raspberry Pi模型 笔记
kernel.img BCM2835 Pi zero,Pi 1
kernel7.img BCM2836,BCM2837 Pi 2,Pi 3 后来的Pi 2使用BCM2837
kernel7l.img BCM2711 Pi 4 大型物理地址扩展(LPAE)
kernel8.img BCM2837,BCM2711 Pi 2,Pi 3,Pi 4 Beta 64位内核1。带有BCM2836的早期Pi 2不支持64位。

注:lscpu该架构报告armv7l,表示用于32位系统(即除了kernel8.img一切),以及aarch64用于64位系统。所述armv7l情况下指的是被架构小端,而不是LPAE如由所指示lkernel7l.img文件名。

设备树覆盖

overlays子文件夹中包含设备树覆盖。这些用于配置可能连接到系统的各种硬件设备,例如Raspberry Pi Touch Display或第三方音板。使用以下条目中的条目来选择这些覆盖层config.txt。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 树莓派/boot分区内的文件有什么用? (https://www.lxx1.com/5257)

如果博客对您有帮助,请给我 赞助


树莓派/boot分区内的文件有什么用?,首发于科技爱好者博客

]]>
https://www.lxx1.com/5257/feed 0
树莓派上安装开源智能家居系统Domoticz https://www.lxx1.com/5241 https://www.lxx1.com/5241#respond Tue, 23 Jun 2020 13:57:55 +0000 https://www.lxx1.com/?p=5241 树莓派上安装开源智能家居系统Domoticz,首发于科技爱好者博客

Domoticz是一个家庭自动化系统,旨在让您监视和配置家庭中的各种设备。 例如,使用Raspberry Pi…Continue reading 树莓派上安装开源智能家居系统Domoticz

树莓派上安装开源智能家居系统Domoticz,首发于科技爱好者博客

]]>
树莓派上安装开源智能家居系统Domoticz,首发于科技爱好者博客

Domoticz是一个家庭自动化系统,旨在让您监视和配置家庭中的各种设备。

例如,使用Raspberry Pi上的Domoticz软件,您可以控制灯光和开关等设备。

您还可以使用它来监视来自传感器的数据。例如,您可以从任何兼容的传感器读取温度,雨水,风,紫外线等信息。

另外,Domoticz软件经过设计可与Raspberry Pi等嵌入式系统配合使用。

在Raspberry Pi上安装Domoticz

在本节中,我们将引导您完成将Domoticz软件安装到Raspberry Pi的过程。对我们来说幸运的是,这是一个相当简单的过程。

准备将Domoticz安装到您的Raspberry Pi

1. 在安装Domoticz之前,我们需要升级已经安装的软件包。

要更新所有内容,我们需要在Raspberry Pi上运行以下两个命令。

sudo apt update
sudo apt upgrade

2. 我们的下一步是直接从网站运行Domoticz安装脚本。

我们可以通过使用curl工具和pipe(|)运算符来做到这一点。

curl -L https://install.domoticz.com | bash

您可以通过直接转到install Domoticz网站来验证我们将要运行的脚本的内容。

在Raspberry Pi上运行Domoticz安装过程

1. 在脚本完成Domoticz的准备之后,您将需要完成一些必要的配置步骤。

要继续,请ENTER按键。

2. 在这里,将询问您希望Domoticz运行的服务。

如果要禁用HTTP或HTTPS,请使用将arrow keys它们悬停在它们之上,然后使用space来选择或取消选择它们。

对于我们的指南,我们将同时保留这两个。但是,在某些情况下,您可能希望禁用通过的访问,HTTP以便所有用户都必须使用更加安全的HTTPS

ENTER键继续进行安装过程。

3. 如果启用了HTTP,则会询问您要Domoticz用于HTTP的端口。

默认情况下,此端口将自动设置为8080

ENTER继续。

4.接下来,如果您启用了HTTPS。现在,您可以设置要用于HTTPS的端口号。

HTTPS的默认端口是443

ENTER继续。

5. 现在,您可以为Domoticz设置安装文件夹。

默认情况下,安装脚本将自动尝试将Domoticz安装到当前用户的主文件夹中。

ENTER继续安装。

6. Domoticz现在已经成功安装到您的Raspberry Pi中。

最后一个屏幕显示了一些细节,这些细节将对您有所帮助,例如您可以指向的两个IP地址。

ENTER键完成了安装过程。

进入Domoticz Web界面

在本节中,我们将向您展示如何访问Domoticz Web界面。您可以在此界面配置Domoticz软件.

1.如果您没有Raspberry Pi的本地IP地址,则可以使用以下命令来检索它。

hostname -I

此命令返回路由器已分配给Raspberry Pi的网络设备的IP地址。

2. 有了Raspberry Pi的IP地址,您现在可以在自己喜欢的Web浏览器中转到以下地址。

我们假设您已启用HTTP并将其保留为默认端口8080

http://[IPADDRESS]:8080

确保[IPADDRESS]用在本节的步骤1中检索到的IP 替换。

3. 现在,您应该可以访问在Raspberry Pi上运行的Domoticz Web界面。

使用此界面,您将能够添加和监视各种设备。

在此阶段,您现在应该已经在Raspberry Pi上成功安装了Domoticz软件。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 树莓派上安装开源智能家居系统Domoticz (https://www.lxx1.com/5241)

如果博客对您有帮助,请给我 赞助


树莓派上安装开源智能家居系统Domoticz,首发于科技爱好者博客

]]>
https://www.lxx1.com/5241/feed 0
8G版本的树莓派4发布,售价仅为75美元 https://www.lxx1.com/5210 https://www.lxx1.com/5210#respond Sun, 31 May 2020 06:19:42 +0000 https://www.lxx1.com/?p=5210 8G版本的树莓派4发布,售价仅为75美元,首发于科技爱好者博客

2020年5月28日,8G内存版本的树莓派4发布,售价仅为75美元。 2019年,树莓派4刚推出时有三个内存版…Continue reading 8G版本的树莓派4发布,售价仅为75美元

8G版本的树莓派4发布,售价仅为75美元,首发于科技爱好者博客

]]>
8G版本的树莓派4发布,售价仅为75美元,首发于科技爱好者博客

2020年5月28日,8G内存版本的树莓派4发布,售价仅为75美元。

2019年,树莓派4刚推出时有三个内存版本——1GB、2GB、4GB,售价分别为35美元、45美元和55美元。树莓派官方不久就取消了1G内存版本,并把2GB版降价到35美元。

目前最新推出的8GB版价格为75美元(国内经销商价格589元),和上一代的接口一样,还是一个USB-C供电口、两个USB 3、两个USB 2、两个micro-HDMI、一个以太网接口。

还有什么?

为了提供新存储器封装所需的稍高峰值电流,树莓派官方调整了电路板上的电源组件,从电路板右侧靠近USB 2.0插槽的位置移除了开关电源,并在USB-C电源连接器旁边添加了一个新的开关器件。

新的32位系统

树莓派默认操作系统映像使用32位LPAE内核和32位用户区。这允许多个进程共享所有8GB的内存,但要受单个进程不能超过3GB内存的限制。对于大多数用户而言,这并不是一个严格的限制,特别是因为Chromium中的每个标签都有自己的流程。

坚持使用32位用户空间的好处是,相同的镜像将在从2011年代的Alpha板到当今闪亮的8GB新产品的所有板上运行。

但是,希望将所有8GB映射到单个进程地址空间中的高级用户则需要64位用户空间。不过这已经有了很多选择,包括UbuntuGentoo

不容忽视,树莓派官方发布了新的64位操作系统映像(Beta版本),它包含与常规32位系统中相同的应用程序和相同的桌面环境,但新系统是针对Debian arm64端口构建的。

我们的32位和64位操作系统镜像都有一个新名称:Raspberry Pi OS

Raspberry Pi OS下载地址:https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip

树莓派8Gb版本开箱图片

树莓派8Gb版本
树莓派8Gb版本
树莓派8Gb版本

科技爱好者博客的看法:

树莓派8Gb版本对需要大内存的用户来说,确实是比较大的改进,可以多开几个浏览器的页面,或者给MySQL服务器多分配一些内存,还是比较不错的。但是对普通用户来说,大内存没有多少实际的用处,因为树莓派的CPU相对来说还是比较鸡肋的,大多数用户用树莓派来开发物联网,或者用树莓派学习Linux,这些都用不上8Gb的内存。

所以,是否需要大内存版本的树莓派,要根据实际情况进行选择。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 8G版本的树莓派4发布,售价仅为75美元 (https://www.lxx1.com/5210)

如果博客对您有帮助,请给我 赞助


8G版本的树莓派4发布,售价仅为75美元,首发于科技爱好者博客

]]>
https://www.lxx1.com/5210/feed 0
解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障 https://www.lxx1.com/5195 https://www.lxx1.com/5195#respond Sun, 31 May 2020 05:22:21 +0000 https://www.lxx1.com/?p=5195 解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障,首发于科技爱好者博客

今天更新科技爱好者博客,在Wordpress后台对插件升级时,结果出现了故障,造成博客无法访问,故障提示如下:…Continue reading 解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障

解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障,首发于科技爱好者博客

]]>
解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障,首发于科技爱好者博客

今天更新科技爱好者博客,在Wordpress后台对插件升级时,结果出现了故障,造成博客无法访问,故障提示如下:“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引。”以下是具体的解决方案。

故障截图如下:

wordpress故障

这时wordpress博客的后台都打不开了,打开站点原来设置的管理员邮箱,看到了后台发来的解决方法。

邮件原文如下:

嗨!

WordPress从版本5.2开始,能够检测到您站点上的插件或主题造成了致命错误,并向您发送自动的通知邮件。

在这次,WordPress发现了您的插件造成的错误:Yoast SEO。

首先,访问您的站点(https://www.lxx1.com/)并查看有无可见的问题。然后,访问发生错误的页面(https://www.lxx1.com/wp-admin/update-core.php)并查看有无问题。

请联系您的主机提供商来获得帮助及调查此问题。

如果您的站点看上去不正常,且您不能正常访问仪表盘,WordPress现在有了特殊的“恢复模式”,能够让您安全地登录仪表盘并调查问题。

https://www.lxx1.com/wp-login.php?action=enter_recovery_mode&rm_token=82wEMiPXXXXXXXXXXDze&rm_key=4J9cDuODP7BUXXXXXfDNb

为了保障您的站点安全,此链接将在1天后过期。请不用担心,如果在此之后错误再度发生,我们将向您发送新的链接。

在寻求关于此问题的帮助时,您可能需要提供以下信息:
WordPress版本5.4.1
当前主题:Amadeus(版本2.1.4)
当前插件:Yoast SEO(版本14.2)
PHP版本7.4.5



错误详情
============
错误类别E_COMPILE_ERROR发生在文件/www/wp-content/plugins/wordpress-seo/wp-seo-main.php的338行。错误信息:require_once(): Failed opening required '/www/wp-content/plugins/wordpress-seo/src/functions.php' (include_path='.:')

看到这里就明白了,博客出现不能访问,是因为使用的插件出现了问题。解决方案也很简单,只需要打开随邮件发送过来的恢复链接就可以进行博客的恢复模式,即可将出现问题的插件关掉。

博客进入恢复模式

然后可以看到出现问题的插件,将其禁用、删除,然后退出恢复模式即可!

有意思的是,删除这个插件后,重新安装没有出现问题,博客访问也正常。


解决“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引”故障,首发于科技爱好者博客

]]>
https://www.lxx1.com/5195/feed 0
MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法 https://www.lxx1.com/5188 https://www.lxx1.com/5188#respond Sun, 24 May 2020 06:49:52 +0000 https://www.lxx1.com/?p=5188 MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法,首发于科技爱好者博客

MYSQL主从同步出现故障:” SLAVE_SQL_RUNNING:NO”,一般是由于…Continue reading MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法

MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法,首发于科技爱好者博客

]]>
MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法,首发于科技爱好者博客

MYSQL主从同步出现故障:” SLAVE_SQL_RUNNING:NO”,一般是由于从服务器进行数据库操作,但是主服务器没有对应的数据库造成了错误,解决办法也很简单,只需要跳过错误的语句即可:

mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;

执行后MySQL主从同步服务器恢复正常!

 

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法 (https://www.lxx1.com/5188)

如果博客对您有帮助,请给我 赞助


MYSQL主从同步故障:” SLAVE_SQL_RUNNING:NO” 的解决办法,首发于科技爱好者博客

]]>
https://www.lxx1.com/5188/feed 0
博客将进行维护,暂停访问1小时 https://www.lxx1.com/5184 https://www.lxx1.com/5184#comments Sun, 24 May 2020 03:47:29 +0000 https://www.lxx1.com/?p=5184 博客将进行维护,暂停访问1小时,首发于科技爱好者博客

博客将使用负载均衡,计划于2020年5月24日12时00分至13时00分进行升级,届时博客将停止数据库访问,统…Continue reading 博客将进行维护,暂停访问1小时

博客将进行维护,暂停访问1小时,首发于科技爱好者博客

]]>
博客将进行维护,暂停访问1小时,首发于科技爱好者博客

博客将使用负载均衡,计划于2020年5月24日12时00分至13时00分进行升级,届时博客将停止数据库访问,统计服务也将停止。

升级完成后会开放访问。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 博客将进行维护,暂停访问1小时 (https://www.lxx1.com/5184)

如果博客对您有帮助,请给我 赞助


博客将进行维护,暂停访问1小时,首发于科技爱好者博客

]]>
https://www.lxx1.com/5184/feed 1
MySQL数据库主主同步配置实战 https://www.lxx1.com/5169 https://www.lxx1.com/5169#respond Tue, 05 May 2020 12:31:07 +0000 https://www.lxx1.com/?p=5169 MySQL数据库主主同步配置实战,首发于科技爱好者博客

最近云服务器大减价,趁机买了几台,博客就放在其中一台上,为了不让剩下的两台服务器闲置,打算都利用起来,对博客网…Continue reading MySQL数据库主主同步配置实战

MySQL数据库主主同步配置实战,首发于科技爱好者博客

]]>
MySQL数据库主主同步配置实战,首发于科技爱好者博客

最近云服务器大减价,趁机买了几台,博客就放在其中一台上,为了不让剩下的两台服务器闲置,打算都利用起来,对博客网站进行负载均衡。使用两台数据库进行主主同步配置,扩展网站数据库架构,提高数据库的读写性能。

以下是MySQL主主同步配置实战过程。

首先说下什么是MySQL主主同步。

假设有两台服务器,这两台服务器上都安装了MySQL数据库软件,但是网站如果只使用单台服务器,性能会受到限制。为了扩展网站的容量,可以同时使用这两台数据库服务器,再搭配上负载均衡配置,让访客随机访问这两台数据库服务器,这样访问速度更快了,且不容易因为访客过多而导致服务器宕机。

一、软件版本和环境设置

两台数据库服务器:

Server 1:192.168.0.1

Server 2:192.168.0.2

两台数据库服务器MySQL版本一致,均为:

MySQL 5.7.29-log – Source distribution

两台服务器的数据库已经手动同步完毕

二、主主同步数据库配置

1.修改MySQL配置文件,开启同步:

在数据库server 1的my.cnf文件mysqld节点添加以下配置:

server-id = 1
log-bin=mysql-bin
binlog_format=mixed
auto_increment_increment=2
auto_increment_offset=1
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
character_set_server=utf8
log-bin-trust-function-creators=1

在数据库server 2的my.cnf文件mysqld节点添加以下配置:

server-id = 2
log-bin=mysql-bin
binlog_format=mixed
auto_increment_increment=2
auto_increment_offset=2
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
character_set_server=utf8
log-bin-trust-function-creators=1

注意:可能部分命令已经配置后了,这里只需要将没有配置的上述部分写如MySQL配置文件。

下面对刚才写的配置文件进行解析:

server-id 是服务器标号,可以为任意数字,但是两台服务器要求不能相同

log_bin 表示启动mysql二进制日志,如果没有配置这个将无法远程链接

binlog_format 为数据库复制模式

replicate-ignore-db 指定不同步的数据库,如果有多个数据库不需要同步可以多个分别声明

character_set_server=utf8 指定utf8为默认字符集

auto_increment_increment=2   为了避免两台数据库同步冲突,将数据库中自动增长键值的步进值auto_imcrement设置为2。一般有n台主MySQL就填n

auto_increment_offset   设定数据库中自动增长的起点,两台mysql的起点必须不同,这样才能避免两台服务器同步时出现主键冲突

log-bin-trust-function-creators=1 在默认情况下,mysql会阻止主从同步的数据库function的创建,这会导致我们在导入sql文件时如果有创建function或者使用function的语句将会报错。

2.重启数据库

修改数据库配置后分别重启:

/etc/inint.d/mysqld restart

3.进入MySQL进行同步授权

分别进入数据库:

mysql -uroot -p

然后分别进行同步授权:

server 1:

grant replication slave, replication client on *.* to 'root'@'192.168.0.2' identified by '数据库密码';

server 2:

grant replication slave, replication client on *.* to 'root'@'192.168.0.1' identified by '数据库密码';

之后分别刷新权限:

flush privileges;

4.查看两台数据库服务器的日志节点

为进行下一步配置,需要获得两台数据库服务器mysql-bin位置和Position值。

分别使用show master status;命令查看。

server 1:

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000011 |     8428 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

server 2:

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 |     5346 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

这样获得了mysql-bin的位置和Position值,下一步配置的时候需要用到。

5.分别设置日志同步节点

server 1:

mysql> change master to
    -> master_host='192.168.0.2',
    -> master_port=3306,
    -> master_user='root',
    -> master_password='数据库密码',
    -> master_log_file='mysql-bin.000005',
    -> master_log_pos=5346;
Query OK, 0 rows affected, 2 warnings (0.03 sec)

server 2:

mysql> change master to
    -> master_host='192.168.0.1',
    -> master_port=3306,
    -> master_user='root',
    -> master_password='数据库密码',
    -> master_log_file='mysql-bin.000011',
    -> master_log_pos=8428;
Query OK, 0 rows affected, 2 warnings (0.03 sec)

这里根据自己服务器的真实IP地址、数据库用户名、数据库端口、数据库密码进行设置,master_log_file和master_log_pos分别设置成在另外一台数据库服务器上查询得到的数据。

注意每次“flush privileges”和“stop slave”后,或者数据库重启后,日志节点的内容会改变,所以如果不确定,每次执行此操作前必须要查看日志节点——show master status;。另外,执行此操作时slave必须没有启动,如果已经启动了,那就先停止,指令:stop slave;

6.启动同步

分别在两台数据库服务器上启动同步:

start slave;

这样数据库主主同步就成功了!

三、查看同步状态

启动同步后,可以查看数据库的同步状态。

查看同步状态的命令是:show slave status\G

server 2:

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.1
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000011
          Read_Master_Log_Pos: 27366
               Relay_Log_File: iZ8vbamf5ysf8obxd0lheqZ-relay-bin.000002
                Relay_Log_Pos: 19258
        Relay_Master_Log_File: mysql-bin.000011
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: mysql,information_schema,performance_schema
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 27366
              Relay_Log_Space: 19483
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 562716ca-8e01-11ea-9589-00163e04c0bd
             Master_Info_File: /www/server/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

可以看到数据库同步已经连接成功了!

这时如果安装了phpmyadmin,可以看到显示数据库已经处于“主复制”和“从复制”状态了。

MySQL主主同步配置成功

在一台数据库中进行修改,另外一台数据库也会执行同样的更改,可以验证MySQL主主同步配置成功!

四、常见错误

MySQL主主同步配置常见的错误信息如下:

Slave_IO_State: Connecting to master

或者显示:

Slave_IO_Running: Connecting
Slave_SQL_Running: Yes

这个错误表明连接另一台数据库服务器不成功,可能的原因有网络不通、数据库账号密码错误、pos错误或者数据库端口未开放,其中,数据库端口未开放最常见。

我使用的是宝塔面板,第一次配置后出现了这个错误,最后发现是宝塔面板没有对数据库的3306端口放行导致的,放开3306端口后错误解决。

放开数据库3306端口

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: MySQL数据库主主同步配置实战 (https://www.lxx1.com/5169)

如果博客对您有帮助,请给我 赞助


MySQL数据库主主同步配置实战,首发于科技爱好者博客

]]>
https://www.lxx1.com/5169/feed 0
最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程 https://www.lxx1.com/5160 https://www.lxx1.com/5160#respond Sun, 03 May 2020 09:17:02 +0000 https://www.lxx1.com/?p=5160 最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程,首发于科技爱好者博客

美国vps主机商搬瓦工-bandwagonhost是IT7旗下站点,主营超低价年付openvz架构vps业务,…Continue reading 最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程

最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程,首发于科技爱好者博客

]]>
最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程,首发于科技爱好者博客

美国vps主机商搬瓦工-bandwagonhost是IT7旗下站点,主营超低价年付openvz架构vps业务,算是低价中不可多得的精品商家,原有数据中心是凤凰城,近日又新加了洛杉矶,价格仍旧维持原来的方案。
以下是使用支付宝购买搬瓦工服务器的购买流程:

第一 选择适合我们的VPS方案

有多种VPS方案可供选择,这里推荐两个购买最广泛,在国内访问速度最快的服务器。

1.20G KVM- LOS ANGELES – CN2
  • 内存:1024MB
  • 硬盘:10G SSD
  • 流量:1000GB/月
  • 带宽:1G
  • 年付:49.9美元
2.40G KVM- LOS ANGELES – CN2
  • 内存:2048MB
  • 硬盘:40G SSD
  • 流量:2000GB/月
  • 带宽:1G
  • 年付:99美元

第二 完善方案配置及机房时间期限和机房位置确认

 
选择年付方案,及机房位置,单击 ADD TO CART 添加到购物车。
然后在购物车中输入优惠码“BWH3HYATVBJW“(优惠 6.58%),点击“checkout”进行结算
 
然后就可以看到优惠后的价格

第三 客户信息填写并核对

首次注册的用户需要据实填写,购买的时候不要挂代理,国家必须是china .选择支付宝付款,打钩同意付款。
如果我们有账号,点击CLICK HERE TO LOGIN 登录完成付款。
如果搬瓦工注册出现以下文字:
The following errors occurred: The characters you entered didn’t?match the image shown .Please try again.
解决办法:
原因:搬瓦工的验证码用的谷歌的,谷歌被墙了,所以验证码不显示。
解决方案:
清理浏览器缓存cookies并直接点击上面套餐表格选择要购买的VPS的购买地址,购买的时候填写注册信息就不需要验证码了。

第四 付款与邮箱确认及KIWIVM面板登录

 
支付方式选择支付宝,然后确认
进行下一步付款。
 
有paypal的可以登陆paypal账号,完成付款。
 
 
至此,你已经完成购买。等待返回页面,并查收邮箱信息。一般几分钟你就可以去查看VPS了。
具体信息如下
 
 
至此就完成了购买全部环节。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程 (https://www.lxx1.com/5160)

如果博客对您有帮助,请给我 赞助


最新搬瓦工购买教程之使用支付宝购买搬瓦工VPS教程,首发于科技爱好者博客

]]>
https://www.lxx1.com/5160/feed 0
用树莓派打造一个火车站车次显示牌 https://www.lxx1.com/5123 https://www.lxx1.com/5123#respond Sun, 03 May 2020 01:36:42 +0000 https://www.lxx1.com/?p=5123 用树莓派打造一个火车站车次显示牌,首发于科技爱好者博客

一般轻轨和火车的站台上都会有电子提示牌,提醒乘客当前时间、下一班车还要等多久以及该班车的始发站和终点站等等。 …Continue reading 用树莓派打造一个火车站车次显示牌

用树莓派打造一个火车站车次显示牌,首发于科技爱好者博客

]]>
用树莓派打造一个火车站车次显示牌,首发于科技爱好者博客

一般轻轨和火车的站台上都会有电子提示牌,提醒乘客当前时间、下一班车还要等多久以及该班车的始发站和终点站等等。

那类似的电子提示牌用到了哪些东西?我们能不能自己做一个?

用树莓派Zero、OLED显示器和3D打印的小盒子就可以搞定。它会涉及一些软件,一点焊接工作,还有一些3D打印材料。

 

引言

不久前,我看到克里斯·哈钦森(Chris Hutchinson)发布的帖子。

Pretty hyped about my most recent @Raspberry_Pi project — a realistic, real-time, train departure board

I’ve open sourced the software over at: https://t.co/vGQzagsSpi

Next step: find a case and make it a permanent fixture! pic.twitter.com/HEXgzdH8TS— Chris Hutchinson (@chrishutchinson) June 6, 2019

他从交通网站的API中提取数据,并在一个小型OLED上实时显示列车发车信息,以模仿英国列车站台上的那些电子提示牌。

我很欣赏他的项目,所以决定自己也做一个。主要是打算改变软件工作的方式,使其在 balendCloud 上运行,这样部署和配置会更加容易。

此外,我重新设计了显示布局,以实现字体的1:1像素映射。避免任何缩放,以便看起来更像真正的点阵显示。

至此,我已大功告成,并对结果感到满意。你可以按照本教程做一个类似的版本。

列车信息来源

https://www.transportapi.com/

硬件需求

这个项目的硬件需求不多,主要就是下面这几项。

·树莓派Zero W
·8G容量的SD卡
·USB电缆(用于电源)
·SSD1322 OLED显示器

如果你想自己做外壳,那还需要一台3D打印机或3D打印服务。

软件需求

该项目构建在 balenaCloud 上的 Docker 容器中运行,这意味着你只需几步就可以部署项目,从而节省任何耗时的手动包安装或配置。

所以你需要:

• 从GitHub下载项目

https://github.com/IoToutpost/UK-Train-Departure-Display

• 准备好刷系统的工具
• 一个免费的 balenaCloud 账户,用于设置和管理Pi下载并安装balena CLI工具——安装在你的计算机上,允许你在树莓派上安装项目代码。

组合在一起

第一个任务是将显示器连接到树莓派的GPIO头。

我用的是树莓派Zero W,它没有引脚针。虽然可以把它放在一个小得多的空间,但这意味着我必须自己焊接跳线。

我已经在下面列出了2.8英寸显示器(从AliExpress买来的)的引脚分配。

其他基于 SSD1322 的显示器应该也是可以的,你只需要留意一下引脚,并在上电前仔细检查它们是否连接正确。

无论你是否把线焊接到Raspberry Pi,都肯定要将线焊接到显示器上。

设置软件

用 balenaCloud & Docker 大大简化了软件的设置过程。

这意味着你不必手动安装或配置软件包,只需设置应用程序,添加设备并刷写SD卡,然后用 balena CLI 工具从计算机推送代码。我不会在这里详细介绍这个过程,你可以访问以下链接查看相关文档。

https://www.balena.io/docs/learn/deploy/deployment/

• 设置balenaCloud应用程序

首先你要有一个balenaCloud账户。然后添加一个新的应用程序,确保为正在使用的设备选择匹配的硬件类型。

接下来,向应用程序添加一个新设备,配置网络并下载balenaOS映像。

• 给设备刷写SD卡并接通电源

用Etcher或其他工具把下载好的操作系统刷入SD卡。
将SD卡插入树莓派并启动设备。几分钟内,它应该会出现在balenaCloud仪表板上。

• 推送App代码

这一步是将代码推送到balenaCloud,之后它会将其分发到你刚才添加的树莓派。具体步骤:

从GitHub下载代码(本文前面提到的链接),然后在你的计算机上安装 balena CLI 工具,进入项目目录,执行 balena push <appName> ,其中 <appName> 是你之前在 balenaCloud 仪表板中创建的应用程序的名称。例如:balena push TrainDepartureDisplay。

如果一切顺利,你将看到balena 独角兽吉祥物,并且你刚刚推送的代码将自动分发到设备上。

准备好硬件并部署代码后,下一步是配置运行应用程序所需的环境变量。

添加配置信息

不需要手动编辑配置文件,你可以用 balloud 仪表板来设置并随时更改任何变量。如果需要的话,你可以看看如何设置环境变量的文档。

https://github.com/balena-io-playground/UK-Train-Departure-Display#configuration

在获得传输API的密钥和应用ID之前,你需要在 Transport API 上注册一个帐户。这样你才能知道列车目的地和到站时间等信息。

一个基础帐户是免费的,每天只能有1000个请求,但是对于这个项目来说已经足够了。

如果前面工作都没问题,整个系统应该可以运行了,你第一眼看到的画面应该是这样。

做个外壳

接下来要把这个电子提示牌做的更真实一些,至少在外观方面。

我设计了一个外壳来装显示器和树莓派。这样可以把所有的东西紧密地放在一起,不会浪费太多的空间。

然后用Autodesk Fusion 360和Creality Ender 3(通过Cura)将其打印出来。这个外壳的模型可以在balena Thingiverse页面上找到。

将 Raspberry Pi Zero 放进壳中,然后熔化少许卡槽以便将其固定。

然后,用四个2.6毫米螺丝封住后盖。

我的电脑显示屏背面有USB接口,所以我剪了一条旧的USB电缆来供电。用细电线做这样的连接时,两根导线外侧可以加上热收缩管。给它们加热后,会形成一个坚固的接头。

供电线通过外壳顶部引出,以获得清爽的外观,然后用双面胶将我们的成品固定在电脑显示屏的下面。

后记

非常感谢Chris Hutchinson,是他最初启动这个项目,并促使我做进一步的开发。Blake也做了一些改进,这个项目就是他那里 fork 出来的。

Blake的项目地址:
https://github.com/ghostseven/UK-Train-Departure-Display

本项目用到的字体:
https://github.com/DanielHartUK/Dot-Matrix-Typeface

来自:Balena.io

作者:Chris Crocker-White

译者:王文文,前51CTO安全频道主编,Redhat认证工程师,华为HCIP-IoT认证工程师。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 用树莓派打造一个火车站车次显示牌 (https://www.lxx1.com/5123)

如果博客对您有帮助,请给我 赞助


用树莓派打造一个火车站车次显示牌,首发于科技爱好者博客

]]>
https://www.lxx1.com/5123/feed 0
关闭树莓派电源LED灯,禁用wifi、蓝牙 https://www.lxx1.com/5119 https://www.lxx1.com/5119#respond Fri, 01 May 2020 12:23:30 +0000 https://www.lxx1.com/?p=5119 关闭树莓派电源LED灯,禁用wifi、蓝牙,首发于科技爱好者博客

在关闭树莓派的电源指示灯和状态指示灯中,对关闭树莓派指示灯的原理进行了详细的讲解,本文不再讲解关闭树莓派指示灯…Continue reading 关闭树莓派电源LED灯,禁用wifi、蓝牙

关闭树莓派电源LED灯,禁用wifi、蓝牙,首发于科技爱好者博客

]]>
关闭树莓派电源LED灯,禁用wifi、蓝牙,首发于科技爱好者博客

关闭树莓派的电源指示灯和状态指示灯中,对关闭树莓派指示灯的原理进行了详细的讲解,本文不再讲解关闭树莓派指示灯的原理,只写命令。如果想要了解原理的,可以去原来的文章参考。

以下是具体的过程:

禁用树莓派电源指示灯:

echo "# Disable the PWR LED" | sudo tee -a /boot/config.txt
echo "dtparam=pwr_led_trigger=none" | sudo tee -a /boot/config.txt
echo "dtparam=pwr_led_activelow=off" | sudo tee -a /boot/config.txt

禁用树莓派以太网指示灯:

echo "# Disable Ethernet LEDs" | sudo tee -a /boot/config.txt
echo "dtparam=eth_led0=14" | sudo tee -a /boot/config.txt
echo "dtparam=eth_led1=14" | sudo tee -a /boot/config.txt

禁用树莓派wifi:

echo "dtoverlay=pi3-disable-wifi" | sudo tee -a /boot/config.txt

禁用树莓派蓝牙:

echo "dtoverlay=pi3-disable-bt" | sudo tee -a /boot/config.txt

禁用树莓派板载音频驱动程序:

echo "blacklist snd_bcm2835"> /etc/modprobe.d/alsa-blacklist.conf

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 关闭树莓派电源LED灯,禁用wifi、蓝牙 (https://www.lxx1.com/5119)

如果博客对您有帮助,请给我 赞助


关闭树莓派电源LED灯,禁用wifi、蓝牙,首发于科技爱好者博客

]]>
https://www.lxx1.com/5119/feed 0