Ubuntu\Kylin\UOS\openEuler\Debian 安装MariaDB 11.4.13

Ubuntu\Kylin\UOS\openEuler\Debian 安装MariaDB 11.4.13

重要提示:

  • MariaDB 二进制包 只有x86_64版本,其他架构请使用MySQL安装包。

以下是详细的步骤:

步骤 1:准备工作

  1. (可选)更新系统并安装依赖 首先确保你的系统是最新的,并安装编译和运行 MariaDB 所必需的库。

    sudo apt update
    sudo apt install -y wget tar nano psmisc
    
  2. 创建系统用户和组 MariaDB 需要一个专用的用户和组来运行。

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    
  3. 下载 MariaDB 11.4.13 二进制 Tarball 访问 MariaDB 官方下载页面 获取准确的下载链接。使用 wget 下载到 /tmp 目录。

    cd /tmp
    wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-11.4.13/bintar-linux-systemd-x86_64/mariadb-11.4.13-linux-systemd-x86_64.tar.gz
    
  4. 解压并移动到标准位置 通常,这类软件会被安装在 /usr/local 目录下。

    sudo tar -xzf mariadb-11.4.13-linux-systemd-x86_64.tar.gz -C /usr/local
    
  5. 创建符号链接 创建一个便于管理的符号链接,这样未来升级版本时会更容易。

    cd /usr/local
    sudo ln -s mariadb-11.4.13-linux-systemd-x86_64  mysql
    

步骤 2:初始化数据库

  • 这是最关键的一步,它会生成初始的系统数据库和 root 用户的临时密码。
    cd /usr/local/mysql
    sudo ./scripts/mariadb-install-db --user=mysql --basedir=/usr/local/mysql --datadir=/opt/mariadb_data
    
    • --user: 指定运行 MariaDB 的用户。
    • --basedir: MariaDB 的基本安装目录。
    • --datadir: 数据库文件(你的所有数据)存放的目录。请确保此目录有足够的空间!

步骤 3:配置 MariaDB

  • 编辑配置文件

    编辑 /etc/my.cnf,在 [mysqld] 部分明确指定 basedir 和 datadir。

    sudo nano /etc/my.cnf
    

    在 [mysqld] 部分添加/修改以下行:

    [mysqld]
    basedir = /usr/local/mysql
    datadir = /opt/mariadb_data
    log-error = /opt/mariadb_data/error.log
    pid-file = /var/run/mariadbd/mariadbd.pid
    bind-address = 127.0.0.1
    port = 3306
    max_connections = 1024
    default-storage-engine = InnoDB
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    

步骤 4:配置系统服务

  1. 复制服务文件

    使用自带的 mysql.server 脚本作为服务管理的基础。

    sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mariadb
    
  2. 启用并启动服务

    使用 systemctl 来管理服务。

    sudo systemctl daemon-reload
    sudo systemctl enable mariadb
    sudo systemctl start mariadb
    
  3. 检查服务状态 确保 MariaDB 已经成功启动。

    sudo systemctl status mariadb
    

    如果状态显示为 active (running),则表示服务已成功启动。

步骤 5:安全设置与测试

  1. cd /usr/local/mysql/bin
    sudo ./mariadb-secure-installation
    ⌘
    Enter current password for root (enter for none):↩︎
    Switch to unix_socket authentication [Y/n] Y↩︎
    Change the root password? [Y/n] Y↩︎
    New password:
    Re-enter new password:
    Remove anonymous users? [Y/n] Y↩︎
    Disallow root login remotely? [Y/n] Y↩︎
    Remove test database and access to it? [Y/n] Y↩︎
    Reload privilege tables now? [Y/n] Y↩︎
    
  2. 测试登录 使用新设置的密码尝试登录 MySQL 客户端。

    /usr/local/mysql/bin/mariadb -uroot -p -h127.0.0.1
    

    输入密码后,如果看到 MariaDB [(none)]> 提示符,恭喜你!安装成功了(CTRL+D退出)。

步骤 6:将 MySQL 客户端添加到 PATH(可选)

为了方便,你可以将 MariaDB 的二进制文件路径(如 mysql, mysqladmin)添加到系统的 PATH 环境变量中。

echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee /etc/profile.d/mariadb.sh
sudo ln -sf /usr/local/mysql/bin/mariadb         /usr/local/bin/mariadb
sudo ln -sf /usr/local/mysql/bin/mariadb-admin   /usr/local/bin/mariadb-admin
sudo ln -sf /usr/local/mysql/bin/mariadb-dump    /usr/local/bin/mariadb-dump

现在,你可以在任何目录直接使用mariadb命令了。

source /etc/profile.d/mariadb.sh
mariadb -u root -p -h127.0.0.1

(可选)步骤:设置 root 同时支持 socket 和密码登录

如果你的 MariaDB 版本为 10.4 及以上,可以直接:

ALTER USER 'root'@'localhost'
IDENTIFIED VIA unix_socket
OR mysql_native_password
USING PASSWORD('新密码');
FLUSH PRIVILEGES;

Docker Compose迁移我的WordPress

root@localhost:~# cat /home/docker-compose.yml 
services:

  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - /home/caddy/Caddyfile:/etc/caddy/Caddyfile
      - /home/caddy/data:/data
      - /home/caddy/config:/config
      - /home/wwwroot:/srv:ro
    networks:
      - wp-net

  wordpress:
    image: wordpress:php8.3-fpm-alpine
    container_name: php
    restart: unless-stopped
    depends_on:
      - db
    volumes:
      - /home/wwwroot/lotro.cc:/var/www/html
      - /home/php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    networks:
      - wp-net

  db:
    image: mysql:8.0
    container_name: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ROOT密码
      MYSQL_DATABASE: 网站数据库库名
      MYSQL_USER: 网站数据库用户
      MYSQL_PASSWORD: 网站数据库密码
    volumes:
      - /home/mysql:/var/lib/mysql
    networks:
      - wp-net

networks:
  wp-net:
    driver: bridge
root@localhost:~# cat /home/caddy/Caddyfile 
lotro.cc, www.lotro.cc {
	# 根目录
	tls admin@live.cn
	root * /srv/lotro.cc
	# PHP-FPM 转发 + 内置的 WordPress-friendly rewrites
	php_fastcgi wordpress:9000 {
		root /var/www/html
		env PATH_INFO {path}
		dial_timeout 5s
		read_timeout 360s
		write_timeout 360s
	}

	# 静态文件直接 serve(php_fastcgi 已经处理了大部分 rewrite)
	file_server
	header /wpad.dat Content-Type application/x-ns-proxy-autoconfig;

	# 压缩
	encode zstd gzip

	# 安全响应头(推荐)
	header {
		X-Frame-Options SAMEORIGIN
		X-Content-Type-Options nosniff
		Strict-Transport-Security "max-age=31536000;"
		Referrer-Policy strict-origin-when-cross-origin
		-Server
	}

	# 日志(调试时打开)
	# log {
	#     output file /var/log/caddy/access.log
	# }
}
root@localhost:~# cat /home/php/uploads.ini 
date.timezone = Asia/Shanghai
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
expose_php = Off
# 数据库导入
zcat wplotro-2026-09-02.sql.gz | docker exec -i mysql mysql -u root -p'你的root密码' 数据库名

# 停掉所有容器
docker compose down

# 修改目录所有者
chown -R 999:999 /home/mysql
chown -R 82:82 /home/wwwroot/lotro.cc

# 目录权限
find /home/wwwroot/lotro.cc -type d -exec chmod 750 {} \;
find /home/wwwroot/lotro.cc -type f -exec chmod 640 {} \;

# 再启动
docker compose up -d

在 Alpine Linux 上搭建一个仅用于 Windows NCSI 探测的 HTTP 文件服务

adduser -D -H -s /sbin/nologin ncsi
id ncsi
mkdir -p /srv/ncsi
echo "Microsoft Connect Test" > /srv/ncsi/test.txt
chown -R root:ncsi /srv/ncsi
chmod 755 /srv/ncsi
chmod 444 /srv/ncsi/test.txt
cat <<'EOF' > /etc/init.d/ncsi-http
#!/sbin/openrc-run

name="NCSI minimal http probe"
description="Minimal HTTP server for Windows NCSI probing"

command="/usr/sbin/httpd"
command_args="-p 0.0.0.0:80 -h /srv/ncsi -u ncsi"

depend() {
    need net
}
EOF
chmod +x /etc/init.d/ncsi-http
apk add busybox-extras
which httpd
rc-update add ncsi-http default
rc-service ncsi-http start
rc-service ncsi-http status
ps aux | grep '[h]ttpd'
apk add curl
curl -i http://127.0.0.1/test.txt

1️⃣ 配置 Windows 注册表

路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet

EnableActiveProbing = 1
ActiveWebProbeHost = <Alpine-IP>
ActiveWebProbePath = /test.txt

零刻ME+飞牛OS+KODI=NAS+HTPC+WIFI+Switch

新入的零刻和飞牛联合出品ME MINI,计划使用场景是放在客厅电视下当HTPC+NAS+双口交换机+WIFI热点

第一步,装KODI,配上15元的万能遥控器,直接播放高清资源和IPTV组播。通过ssh连上飞牛OS,执行如下命令。

sudo mkdir /home/$USER
sudo chown $USER -R /home/$USER
sudo usermod -a -G cdrom,audio,render,video,plugdev,users,dialout,dip,input $USER
groups $USER #查看所属用户组
cd /lib/firmware/i915
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/bmg_dmc.bin
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/xe2lpd_dmc.bin
sudo update-initramfs -u -k all
sudo apt update
sudo apt -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
#flatpak remotes #验证remote
sudo flatpak -y install flathub tv.kodi.Kodi
#flatpak override --user tv.kodi.Kodi --device=all #给kodi添加设备(可选)
#flatpak override --user tv.kodi.Kodi --filesystem=/vol1/1000 #添加本地资源访问权限
flatpak run tv.kodi.Kodi

#echo "*.warning  @180.167.245.xx" | sudo tee -a /etc/rsyslog.conf #收集警告日志

cat <<EOF | sudo tee /etc/systemd/system/kodi.service # 此行到下方EOF连续
[Unit]
Description=Kodi Flatpak
After=graphical.target

[Service]
Type=simple
ExecStartPre=-/bin/sleep 11
ExecStart=/usr/bin/flatpak run tv.kodi.Kodi
User=$USER
Restart=always

[Install]
WantedBy=default.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable kodi.service
sudo reboot
sudo systemctl start kodi.service #如果提示未能启动X请尝试重新连接ssh再试。

第二步:双网口+热点

1、安装必要软件

sudo apt update
sudo apt install hostapd dnsmasq

2、编辑sudo nano /etc/network/interfaces配置

# Loopback
auto lo
iface lo inet loopback

# Bridge 接口(enp1s0 + enp2s0)
auto br0
iface br0 inet dhcp
    bridge_ports enp1s0 enp2s0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

# Wi-Fi 热点接口(wlo1)
auto wlo1
iface wlo1 inet static
    address 10.42.0.1
    netmask 255.255.255.0
up iptables -t nat -A POSTROUTING -o wg0 -s 10.42.0.0/24 -j MASQUERADE
up iptables -A FORWARD -i wg0 -o wlo1 -m state --state RELATED,ESTABLISHED -j ACCEPT
up iptables -A FORWARD -i wlo1 -o wg0 -j ACCEPT
up iptables -t nat -A POSTROUTING -o br0 -s 10.42.0.0/24 -j MASQUERADE
up iptables -A FORWARD -i br0 -o wlo1 -m state --state RELATED,ESTABLISHED -j ACCEPT
up iptables -A FORWARD -i wlo1 -o br0 -j ACCEPT

3、编辑sudo nano  /etc/hostapd/hostapd.conf配置

interface=wlo1
driver=nl80211
ssid=MeMini_AP
hw_mode=g
channel=6
ieee80211n=1
ht_capab=[HT40+]
wmm_enabled=1
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
max_num_sta=15
beacon_int=100
rts_threshold=2347

4、告诉系统 hostapd 配置文件位置sudo nano /etc/default/hostapd

# 修改 #DAEMON_OPTS=""
DAEMON_CONF="/etc/hostapd/hostapd.conf"

5、编辑sudo nano /etc/dnsmasq.d/hotspot.conf服务

interface=wlo1
dhcp-range=10.42.0.10,10.42.0.50,12h
dhcp-option=3,10.42.0.1   # 网关
dhcp-option=6,10.42.0.1   # DNS

6、启用服务

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq

7、关闭NetworkManager,添加计划任务sudo crontab -e

@reboot	sleep 300 && systemctl stop NetworkManager

8、重启设备sudo reboot,可以连上热点MeMini_AP密码12345678

实测这块CNVi: Wi-Fi (Wi-Fi 6 AX101NGW)网卡的上下行速率只有25-55Mbps左右

救援模式安装AlpineLinux

参考官方:Replacing non-Alpine Linux with Alpine remotely

一、进入救援模式:

二、在VNC界面操作下载Alpine写入硬盘

wget dl-cdn.alpinelinux.org/alpine/v3.5/releases/x86_64/alpine-virt-3.5.2-x86_64.iso

把image写入硬盘/dev/vda

dd if=alpine-virt-3.5.2-x86_64.iso of=/dev/vda

重启,从本地硬盘启动,Alpine当前运行在ram里,登录root,剥离硬盘后格式硬盘并安装alpine

mkdir /media/setup
cp -a /media/vda/* /media/setup
mkdir /lib/setup
cp -a /.modloop/* /lib/setup

卸载modloop和media文件夹

rc-service modloop stop
 umount /dev/vda

将文件移回原位

mv /media/setup/* /media/vda/
mv /lib/setup/* /.modloop/

最后就可以格式化硬盘,安装alpine了

setup-disk或者setup-alpine

自定义分区安装alpine

参考文章:https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html

参考文章:https://wiki.alpinelinux.org/wiki/Bootloaders

apk add lsblk e2fsprogs cfdisk
mdev -s
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
mkfs.ext4 /dev/sda4
mount /dev/sda2 /mnt -t ext4
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot -t ext4
swapon /dev/sda3
setup-disk -m sys /mnt
dd bs=440 if=/usr/share/syslinux/mbr.bin of=/dev/sda
reboot