主頁 > 前端設計 > (MHA)MySQL高可用集群配置實體,綜合理解決議程序(干貨MHA的下載連接)

(MHA)MySQL高可用集群配置實體,綜合理解決議程序(干貨MHA的下載連接)

2020-10-28 03:09:21 前端設計

MHA高可用MySQL高可用集群

  • 一、MHA的介紹
  • 二、實驗介紹
          • 1、實驗環境
          • 2、實驗目的
          • 3、實驗配置程序
  • 三、實體配置MySQL(MHA)高可用程序
      • 1、配置MySQL一主兩從
          • 1)修改master組態檔
          • 2)修該slave組態檔
          • 3)重啟所有資料庫
          • 4)為資料庫服務器建立軟連接
          • 5)為資料庫服務器開啟主從復制和MHA服務賬戶授權
          • 6)查看master資料庫主從復制的,二進制檔案名和同步復制的pos點
          • 7)在slave資料庫中同步master資料庫
      • 2、安裝 MHA 軟體
          • 1)MHA依賴環境包安裝
          • 2)node節點安裝
          • 3)MHA-manager安裝
      • 4、配置無密碼認證
      • 5、 配置 MySQL MHA 高可用
          • 1)配置MHA自動切換vip腳本
          • 2)配置MHA的組態檔
      • 6、MHA測驗免密互動、和主從同步
          • 1)測驗 ssh 無密碼認證,如果正常最后會輸出 successfully
          • 2)檢查mysql主從復制,如過正常最后回輸出 OK
      • 7、模擬 master 故障切換
          • 1)需要到master資料庫上手動開啟虛擬ip
          • 2)啟動MHA
          • 3)查看當前master狀態
          • 4)將master資料庫關閉
          • 5)查看master地址是否改變
      • 8、修復故障資料庫

一、MHA的介紹

  • MHA是一款用于解決資料庫MySQL高可用性環境下故障切換和主從提升的高可用軟體,能夠很好的解決單master主資料庫單點故障點的問題,

  • 在MySQL故障切換程序中,MHA能做到在0~30秒之內自動完成資料庫的故障切換操作,并且在進行故障切換的程序中, MHA能在最大程度上保證資料的一致性,以達到真正意義上的高可用,

  • MHA能夠在0.5-2秒內實作切換,0.5-2秒的寫阻塞通常是可接受的,所以你甚至能在非維護期間就在線切換master,諸如升級到高版本,升級到更快的服務器之類的作業,將會變得更容易,

  • MHA由Manager節點和Node節點組成,

二、實驗介紹

1、實驗環境
服務器作業系統IP地址
MHA manger節點Linux 7.6 (64位)192.168.10.161/24
master 主節點Linux 7.6 (64位)192.168.10.100/24
mater slave主備節點Linux 7.6 (64位)192.168.10.156/24
slave 從節點Linux 7.6 (64位)192.168.10.160/24
  • 實驗規劃圖
    在這里插入圖片描述
2、實驗目的

本案例要求通過 MHA 監控 MySQL 資料庫在master故障時進行自動切換到master salve,不影響業務,

3、實驗配置程序
  • 配置 MySQL 一主兩從
  • 安裝 MHA 軟體
  • 配置無密碼認證
  • 配置 MySQL MHA 高可用
  • 模擬 master 故障切換

注: 所有服務器關閉selinux和防火墻,

三、實體配置MySQL(MHA)高可用程序

1、配置MySQL一主兩從

  • 為三臺資料庫服務器安裝MySQL7.6
  • 修改資料庫的組態檔/etc/my.cnf,開啟日志服務
1)修改master組態檔
[root@Mysql1 ~]# vim /etc/my.cnf
[mysqld]
server-id = 1                  //資料庫的身份id,不同的資料庫身份id不能一樣
log_bin = master-bin          //開啟資料庫二進制檔案
log-slave-updates = true     //允許別的從服務器和自己同步
2)修該slave組態檔
除了兩臺slave資料庫的server-id直段不一樣,其他修改的添加的欄位一樣
[root@Mysql2 ~]# vim /etc/my.cnf
server-id = 2    
log_bin = master-bin
relay-log = relay-log-bin     //開啟中繼日志,同來同步資料庫的二級制檔案
relay-log-index = slave-relay-bin.index   //開啟中繼日志索引
3)重啟所有資料庫
  [root@Mysql1 ~]# systemctl  restart  mysqld
4)為資料庫服務器建立軟連接
使liunx系統識別mysql的操作命令,
[root@Mysql1 ~]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/
[root@Mysql1 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
5)為資料庫服務器開啟主從復制和MHA服務賬戶授權
mysql> grant replication slave on *.* to 'myslave'@'192.168.10.%' identified by '123';
//為主從復制賬戶授權
mysql> grant all privileges on *.* to 'mha'@'192.168.10.%' identified by 'manager';
//為MHA賬戶授權
mysql> flush privileges;    //重繪授權
6)查看master資料庫主從復制的,二進制檔案名和同步復制的pos點
mysql> show master status;
+-------------------+----------+
| File              | Position |//從服務器要同步的二進制檔案名和同步的pos點
+-------------------+----------+
| master-bin.000001 |    155|     
+-------------------+----------+
7)在slave資料庫中同步master資料庫
mysql> change master to master_host='192.168.10.100',master_user='myslave',
 > master_password='123',master_log_file='master-bin.000001',
 > master_log_pos=155;    //同步主資料庫
mysql> start slave;       //開啟主從復制
mysql> set global read_only=1;   //設定從資料庫為只讀

8)查看slave資料庫的 IO 和 SQL 執行緒是否都是 yes 代表同步是否正常,no 表示不正常,

mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes   //都為yes表示同步正常

9)驗證主從復制是否成功,
在主服務器上創建一個表或者庫,在從服務器上查看是否有在主服務器上創建的表或者庫

2、安裝 MHA 軟體

1)MHA依賴環境包安裝
  • 每個節點上都要安裝MHA依賴環境包
  • 虛擬機的yum倉庫一定要有線網源,可以上網,因為yum安裝的環境包都時需要到線網中下載,
[root@MHA-manager ~]# yum install epel-release --nogpgcheck -y   //以不檢查簽名資訊的方式安裝epel源
[root@MHA-manager ~]#yum install -y perl-DBD-MySQL \            //連接資料庫的驅動
perl-Config-Tiny \            //配置資訊    
perl-Log-Dispatch \             //日志資訊
perl-Parallel-ForkManager \       //多執行緒管理
perl-ExtUtils-CBuilder \            //單元構建
perl-ExtUtils-MakeMaker \         //編譯行程
perl-CPAN                              //包管理行程
2)node節點安裝

MHA 軟體包對于每個作業系統版本不一樣,這里 CentOS7.0以上必須選擇 0.57 版本,CentOs6.0以上使用必須使用0.56版本,需要注意的是所有服務器上必須先安裝 node 組件,最后在 MHA-manager 節點上安裝 manager 組件,因為 manager 管理服務器依賴 node 組件,

  • node的下載網址https://nodejs.org/en/download/

將下載的node包上傳到各個節點,

  • 編譯安裝node組件
[root@Mysql1 ~]# tar zxvf mha4mysql-node-0.57.tar.gz     //解壓node安裝包
[root@Mysql1 ~]# cd mha4mysql-node-0.57    //進入到解壓目錄
[root@Mysql1 mha4mysql-node-0.57]# perl Makefile.PL   //使用perl 編譯檔案
[root@Mysql1 mha4mysql-node-0.57]# make   &&  make install   //編譯安裝node

注: node 安裝后也會在/usr/local/bin 下面會生成幾個腳本(這些工具通常由 MHAManager 的腳本觸發,無需人為操作)主要包括:

腳本名用法介紹
save_binary_logs保存和復制 master 的二進制日志
-apply_diff_relay_logs識別差異的中繼日志事件并將其差異的事件應用于其他的 slave
filter_mysqlbinlog去除不必要的 ROLLBACK 事件(MHA 已不再使用這個工具)
-purge_relay_logs清除中繼日志(不會阻塞 SQL 執行緒)
3)MHA-manager安裝

在 MHA-manager 上安裝 manager 組件(!注意:一定要先安裝node 組件才能安裝manager 組件)

  • MHA-manager 5.6的下載地址
    https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads
  • MHA-manager 5.7的下載地址需要翻墻才能下載到,這里是以下好的提取地址
    鏈接: https://pan.baidu.com/s/18H12bTIYHi2H0dXs2DI7NA 提取碼: mwkq
[root@MHA-manager ~]# tar zxvf mha4MHA-manager-0.57.tar.gz 
[root@MHA-manager ~]# cd mha4MHA-manager-0.57
[root@MHA-manager mha4MHA-manager-0.57]# perl Makefile.PL
[root@MHA-manager mha4MHA-manager-0.57]# make  &&  make install

注: manager 安裝后在/usr/local/bin 下面會生成幾個用法工具,主要包括:

工具名用法介紹
masterha_check_ssh檢查 MHA 的 SSH 配置狀況
masterha_check_repl檢查 MySQL 復制狀況
masterha_manger啟動 manager的腳本
masterha_check_status檢測當前 MHA 運行狀態
masterha_master_monitor檢測 master 是否宕機
masterha_master_switch控制故障轉移(自動或者手動)
masterha_conf_host添加或洗掉配置的 server 資訊
masterha_stop關閉manager

4、配置無密碼認證

1) 在 manager 上配置到所有資料庫節點的無密碼認證
[root@MHA-manager ~]# ssh-keygen -t rsa //一路按回車鍵
[root@MHA-manager ~]# ssh-copy-id 192.168.10.100
[root@MHA-manager ~]# ssh-copy-id 192.168.10.156
[root@MHA-manager ~]# ssh-copy-id 192.168.10.160
2)在master上配置到資料庫節點slave的無密碼認證
[root@Mysql1 ~]# ssh-keygen -t rsa
[root@Mysql1 ~]# ssh-copy-id 192.168.10.156
[root@Mysql1 ~]# ssh-copy-id 192.168.10.160
3)在 master-slave 上配置到資料庫節點slave和master的無密碼認證
[root@Mysql2 ~]# ssh-keygen -t rsa
[root@Mysql2 ~]# ssh-copy-id 192.168.10.100
[root@Mysql2 ~]# ssh-copy-id 192.168.10.160
4) 在slave 上配置到資料庫節點master-slave和master的無密碼認證
[root@Mysql3 ~]# ssh-keygen -t rsa
[root@Mysql3 ~]# ssh-copy-id 192.168.10.100
[root@Mysql3 ~]# ssh-copy-id 192.168.10.156

5、 配置 MySQL MHA 高可用

1)配置MHA自動切換vip腳本

[root@MHA-manager ~]# cp -ra /root/mha4mysql-manager-0.57/samples/scripts /usr/local/bin
//將vip控制腳本復制到指定目錄下

  • 控制自動切換vip的腳本模板
腳本名用法介紹
master_ip_failover自動切換時 vip 管理的腳本
master_ip_online_change在線切換時 vip 的管理
power_manager故障發生后關閉主機的腳本
1360 5 月 31 2015 send_report因故障切換后發送報警的腳本
  • 復制上述的自動切換時 vip 管理的腳本到/usr/local/bin 目錄,使用腳本管理 vip
    [root@MHA-manager ~]# cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin
  • 添加內容部分
[root@localhost local]# vim /usr/local/bin/master_ip_failover
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';

use Getopt::Long;

my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
//添加以下內容
my $vip = '192.168.10.200';         //vip的地址
my $brdc = '192.168.10.255';    //vip的網路號,也表示結束地址
my $ifdev = 'ens33';      //網卡名稱
my $key = '1';            //邏輯子介面
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";    //啟動vip
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";   //關閉vip
my $exit_code = 0;    //狀態的回傳值,正常關倍訓傳0
······   //省略部分資訊
2)配置MHA的組態檔

創建 MHA 軟體目錄并拷貝組態檔,

[root@MHA-manager ~]# mkdir /etc/masterha           #創建軟體目錄
[root@MHA-manager ~]# cp /root/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha/     #復制模板到軟體目錄
[root@MHA-manager ~]# vim /etc/masterha/app1.cnf        #編輯組態檔
[server default]
manager_workdir=/var/log/masterha/app1.log               ##manager作業目錄
manager_log=/var/log/masterha/app1/manager.log            #manager日志
master_binlog_dir=/usr/local/mysql/data/                #master保存binlog的位置,這里的路徑要與master里配置的binlog的路徑一致,以便mha能找到
#master_ip_failover_script= /usr/local/bin/master_ip_failover    #設定自動failover時候的切換腳本,也就是上邊編輯的自動切換vip腳本
master_ip_online_change_script= /usr/local/bin/master_ip_online_change  #設定手動切換時候的切換腳本
password=manager      #設定mysql中root用戶的密碼,這個密碼是前文中創建監控用戶的那個密碼
user=mha        #設定監控用戶root
ping_interval=1      #設定監控主庫,發送ping包的時間間隔,默認是3秒,嘗試三次沒有回應的時候自動進行railover
remote_workdir=/tmp    #設定遠端mysql在發生切換時binlog的保存位置
repl_password=123        #設定復制用戶的密碼
repl_user=myslave           #設定復制用戶的用戶
report_script=/usr/local/send_report      //設定發生切換后發送的報警的腳本
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.10.100  -s 192.168.10.156
shutdown_script=""  #設定故障發生后關閉故障主機腳本(該腳本的主要作用是關閉主機,這里沒有使用)
ssh_user=root      #設定ssh的登錄用戶名

[server1]
hostname=192.168.10.100
port=3306
[server2]
hostname=192.168.10.156
port=3306
candidate_master=1    #設定為候選master,如果設定該引數以后,發生主從切換以后將會將此從庫提升為主庫,即使這個主庫不是集群中事件最新的slave
check_repl_delay=0    #默認情況下如果一個slave落后master 100M的relay logs的話,MHA將不會選擇該slave作為一個新的master,因為對于這個slave的恢復需要花費很長時間,通過設定check_repl_delay=0,MHA觸發切換在選擇一個新的master的時候將會忽略復制延時,這個引數對于設定了candidate_master=1的主機非常有用,因為這個候選主在切換的程序中一定是新的master

[server3]
hostname=192.168.10.161
port=3306

6、MHA測驗免密互動、和主從同步

1)測驗 ssh 無密碼認證,如果正常最后會輸出 successfully
[root@localhost local]# masterha_check_ssh -conf=/etc/masterha/app1.cnf
Sun Oct 25 13:59:20 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Oct 25 13:59:20 2020 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
······//省略部分資訊
Sun Oct 25 13:59:26 2020 - [info] All SSH connection tests passed successfully.
2)檢查mysql主從復制,如過正常最后回輸出 OK
[root@localhost ]# masterha_check_repl -conf=/etc/masterha/app1.cnf
Sun Oct 25 15:16:47 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Oct 25 15:16:47 2020 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
·······//省略部分資訊
MySQL Replication Health is OK.

7、模擬 master 故障切換

1)需要到master資料庫上手動開啟虛擬ip

[root@Mysql1 ~]# /sbin/ifconfig ens33:1 192.168.10.200/24

2)啟動MHA
[root@MHA-manager ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

--remove_dead_master_conf 該引數代表當發生主從切換后,老的主庫的 ip 將會從組態檔中移除,

--ignore_last_failover 在預設情況下,如果 MHA 檢測到連續發生宕機,且兩次宕機間隔不足 8 小時的話,則不會進行 Failover,之所以這樣限制是為了避免 ping-pong 效應,該引數代表忽略上次 MHA 觸發切換產生的檔案,
默認情況下,MHA 發生切換后會在日志記目錄,也就是上面設定的日志 app1.failover.complete 檔案,下次再次切換的時候如果發現該目錄下存在該檔案將不允許觸發切換,除非在第一次切換后收到洗掉該檔案,
為了方便,這里設定--ignore_last_failover,

-- manger_log 日志存放位置,
3)查看當前master狀態

[root@mysql3 local]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:22244) is running(0:PING_OK), master:192.168.10.100

4)將master資料庫關閉
  • 在master資料庫上查看vip是否啟動
[root@mysql1 ~]# ifconfig        //查看vip是否開啟
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::e6f1:c815:f9f7:fa2d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5a:1e:11  txqueuelen 1000  (Ethernet)
        RX packets 605653  bytes 890376090 (849.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108259  bytes 7264193 (6.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.200  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:5a:1e:11  txqueuelen 1000  (Ethernet)


[root@mysql1 ~]# systemctl stop mysqld   或 pkill -9 mysql  //關閉資料庫
5)查看master地址是否改變

[root@mysql3 local]# masterha_check_status --conf=/etc/masterha/app1.cnf

app1 (pid:23153) is running(0:PING_OK), master:192.168.10.156

//模擬故障成功master地址由100變為了156

切換備選主庫的演算法:
1.一般判斷從庫的是從(position/GTID)判斷優劣,資料有差異,最接近于master的slave,成為備選主,
2.資料一致的情況下,按照組態檔順序,選擇備選主庫,
3.設定有權重(candidate_master=1),按照權重強制指定備選主,
1)默認情況下如果一個slave落后master 100M的relay logs的話,即使有權重,也會失效,
2)如果check_repl_delay=0的話,即使落后很多日志,也強制選擇其為備選主,

8、修復故障資料庫

1)啟動故障資料庫
[root@mysql1 ~]# systemctl start mysqld
2)修復故障資料庫主從同步
mysql> change master to master_host=‘192.168.10.156’,master_user=‘myslave’,
> master_password=‘123’,master_log_file=‘master-bin.000004’,
> master_log_pos=154;
>start slave;
3)修改MHA服務器組態檔(再把這個記錄添加進去,因為它檢測掉失效時候會自動消失)
[root@localhost ]# vi /etc/masterha/app1.cnf
[server1]
hostname=192.168.195.129
port=3306
4)重啟MHA服務
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/194609.html

標籤:其他

上一篇:兩月面試被拒30次,終收5家大廠offer— JVM、執行緒、演算法、spring、高并發

下一篇:碎片化的學習需要整理、沉淀,記錄到博客是最好的方式!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more