Alpine安装MySQL
前言
这学期学习MySQL,老师教的是安装Windows版,可是Windows安装MySQL太麻烦了,这时我想用Linux会不会简单点呢?就几条命令就能安装完成,其他课有用到VMware正好有运行 Linux 的环境。于是就有了这篇教程(bushi
首先要安装一个Linux系统,可是用Linux只是为了安装MySQL用来学习,使用CentOS、Ubuntu这类发行版就太浪费了,有没有精简点的系统呢,这时我想到了 Alpine Linux,想必玩Docker的对这个系统并不陌生吧,Alpine是一个轻量级 Linux 发行版,安装完成仅100多 MB,适合用来做路由器、防火墙、VPNs、VoIP 盒子以及服务器的操作系统,也常用于Docker底包。这么精简的系统用来安装 MySQL 用于学习再适合不过了。
下载镜像
先到Alpine 官网下载ISO镜像,选择Virtual x86_64。
安装 Alpine
默认情况下,Alpine会为EFI启动分区分配 300MB,再分配部分空间给 swap,如此操作根目录下可用空间就很少了。通过手动分区和安装的操作可以缩减EFI分区同时去掉 swap 分区,以最大化利用磁盘空间。
VMware安装步骤就不写了,相信大家都会了(不会的去复习 Linux 课程(狗头保命))
VMware建议使用自定义NAT网络,可以连接网络的同时方便管理虚拟机 IP。
# 通过正常安装流程进行联网、镜像源设置,随后终止安装流程
setup-alpine
# 安装分区工具
apk add parted e2fsprogs dosfstools
# 进行分区
parted -sa optimal /dev/sda mklabel gpt # GPT 分区表
parted -sa optimal /dev/sda mkpart ESP fat32 1MiB 51MiB # EFI 分区 50MB
parted -sa optimal /dev/sda set 1 boot # EFI 标志
parted -sa optimal /dev/sda mkpart primary ext4 51MiB 100% # 根分区
mkfs.vfat -F32 -n EFI /dev/sda1 # EFI 分区
mkfs.ext4 -L root /dev/sda2 # 根分区
# 重启
reboot
# 挂载磁盘,注意先后及新建文件夹
mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# 通过正常安装流程进行所有设置,到选择磁盘后终止
setup-alpine
# 安装
setup-disk /mnt
# 安装完成后确认/boot/efi、/boot/grub及/etc/fstab
tree /mnt/boot/efi
/mnt/boot/efi
└── EFI
├── alpine
│ └── grubx64.efi
└── boot
└── bootx64.efi
cat /mnt/boot/grub/grub.cfg
cat /mnt/etc/fstab
# 如果缺少文件或文件为空手动安装UEFI引导
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/sh
apk add grub-efi efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=alpine --recheck --removable
grub-mkconfig -o /boot/grub/grub.cfg
安装后磁盘情况
localhost:~# df -h
Filesystem Size Used Available Use% Mounted on
devtmpfs 10.0M 0 10.0M 0% /dev
shm 216.8M 0 216.8M 0% /dev/shm
/dev/sda2 938.3M 100.2M 773.6M 11% /
tmpfs 86.7M 116.0K 86.6M 0% /run
efivarfs 256.0K 53.1K 197.9K 21% /sys/firmware/efi/efivars
/dev/sda1 49.2M 274.0K 48.9M 1% /boot/efi
tmpfs 216.8M 0 216.8M 0% /tmp
安装 MySQL
在Alpine Linux上安装MySQL(或更常用的 MariaDB,它是 MySQL 的兼容分支)相对轻量,但需要注意一些细节,因为Alpine使用apk包管理器,库和路径与Ubuntu/Debian有差异。
# 更新源
apk update
apk upgrade
# 安装 MariaDB(MySQL 兼容)
# Alpine默认没有Oracle MySQL包,但MariaDB完全兼容MySQL客户端/服务器。
apk add mariadb mariadb-client
# 初始化数据库
# MariaDB安装后需要初始化数据目录:
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# 启动 MariaDB 服务
rc-service mariadb start
# 设置开机自启:
rc-update add mariadb
# 设置root密码并安全配置
mysql_secure_installation
# 按照提示操作:
# 设置root密码
# 删除匿名用户
# 禁止root远程登录(可根据需求允许)这里需要就不禁止了
# 删除测试数据库
# 刷新权限
# 测试连接
mysql -u root -p
# 输入密码后应该能进入MySQL/MariaDB命令行。
# 允许远程连接
# 编辑配置文件
vi /etc/my.cnf.d/mariadb-server.cnf
# 在[mysqld]下添加:
# this is only for the mysqld standalone daemon
[mysqld]
skip-networking = 0
bind-address = 0.0.0.0
port = 3306
# 修改[galera]下的内容
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0
# 然后重启 MariaDB:
rc-service mariadb restart
# 创建远程用户:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
安装MySQL后磁盘情况
localhost:~# df -h
Filesystem Size Used Available Use% Mounted on
devtmpfs 10.0M 0 10.0M 0% /dev
shm 216.8M 0 216.8M 0% /dev/shm
/dev/sda2 938.3M 539.1M 334.6M 62% /
tmpfs 86.7M 132.0K 86.6M 0% /run
efivarfs 256.0K 53.1K 197.9K 21% /sys/firmware/efi/efivars
/dev/sda1 49.2M 274.0K 48.9M 1% /boot/efi
tmpfs 216.8M 0 216.8M 0% /tmp
可以看到 MySQL 仅占用了 400 多 MB,还是比较轻量,系统加软件占用和在 Windows 上安装差不多。
远程连接 MySQL
VMware 镜像分享
下载地址:https://wwjx.lanzout.com/b02sg1uxzc 密码:0000
Alpine user:root
password:alpine
MySQL user:root
password:MySQL