在arm架构的Debian系统手动安装和卸载Mysql8的操作

记录一下在arm架构的Debian系统手动安装和卸载Mysql8的操作

bash 复制代码
lsb_release -a
bash 复制代码
linaro@linaro-alip:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm
linaro@linaro-alip:~$ 
bash 复制代码
linaro@linaro-alip:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
BUILD_INFO="root@liqilin-virtual-machine Sat May 24 08:37:00 CST 2025"
ID_LIKE="debian"
RK_BUILD_INFO="root@liqilin-virtual-machine Sat May 24 08:37:01 CST 2025"
linaro@linaro-alip:~$ 
bash 复制代码
linaro@linaro-alip:~$ uname -m
aarch64
linaro@linaro-alip:~$ 

1.安装MYSQL8

1.更新系统并安装依赖(安装过程中有可能需要用到)

bash 复制代码
sudo apt update && sudo apt upgrade -y
bash 复制代码
sudo apt-get install -y libaio1 libnuma1 libncurses6

2.下载 MySQL 8 的官方安装包

进入/usr/local目录下载后解压更改文件夹名称

bash 复制代码
cd /usr/local
bash 复制代码
sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.17-aarch64.tar.gz
bash 复制代码
sudo tar -zxvf mysql-8.0.32-linux-glibc2.17-aarch64.tar.gz
bash 复制代码
sudo mv mysql-8.0.32-linux-glibc2.17-aarch64 mysql

3.创建需要的data文件夹以及data下面的mysql和tmp文件夹以及授权

在/usr/local/mysql目录下面创建

bash 复制代码
cd /usr/local/mysql
bash 复制代码
sudo mkdir -p data
bash 复制代码
cd data
bash 复制代码
sudo mkdir -p mysql
bash 复制代码
sudo mkdir -p tmp
bash 复制代码
sudo chmod 777 /usr/local/mysql
bash 复制代码
sudo chmod 777 /usr/local/mysql/data
bash 复制代码
sudo chmod 777 /usr/local/mysql/data/mysql
bash 复制代码
sudo chmod 777 /usr/local/mysql/data/tmp

4.创建 MySQL 用户和用户组

bash 复制代码
sudo groupadd mysql
bash 复制代码
sudo useradd -r -g mysql -s /bin/false mysql

5.创建my.cnf文件

在/etc目录下创建

bash 复制代码
cd /etc

创建文件

bash 复制代码
sudo touch my.cnf

my.cnf文件内容(需要与创建的一致)

bash 复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data/mysql
socket=/usr/local/mysql/data/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql/mysql.err
pid-file=/usr/local/mysql/data/mysql/mysql.pid
character_set_server=utf8mb4
symbolic-links=0

[client]
socket = /usr/local/mysql/data/tmp/mysql.sock

编辑或者用其他方式写文件的时候,权限应该要开放(注意编辑完成后权限要恢复644)

bash 复制代码
sudo chmod 777 /etc/my.cnf

必须恢复644权限,/etc/my.cnf 文件的权限设置为可写(world-writable)可能导致 MySQL 忽略该配置文件

bash 复制代码
sudo chmod 644 /etc/my.cnf

将 /etc/my.cnf 文件的所有者和所属组都设置为root

bash 复制代码
sudo chown root:root /etc/my.cnf

6.初始化mysql8

在安装之前,必须设置所有者和所属组为新建的mysql用户用户组

bash 复制代码
sudo chown -R mysql:mysql /usr/local/mysql

进入mysql的bin目录

bash 复制代码
cd /usr/local/mysql/bin/

执行初始化

bash 复制代码
sudo ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/mysql/ --user=mysql --initialize

如果在控制台没有看到临时密码,那么安装过程可能出错了,如果有临时密码,基本上算是成功

如果没注意,可能需要在mysql.err里查看初始化临时密码

bash 复制代码
/usr/local/mysql/data/mysql/mysql.err

7.配置 MySQLsystemd 服务

bash 复制代码
cd /etc/systemd/system
bash 复制代码
sudo touch mysqld.service
bash 复制代码
sudo chmod 644 mysqld.service

mysqld.service文件内容

bash 复制代码
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=notify
TimeoutSec=0
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

刷新重新加载服务

bash 复制代码
sudo systemctl daemon-reload

启动

bash 复制代码
sudo systemctl start mysqld.service

停止

bash 复制代码
sudo systemctl stop mysqld.service

查看状态

bash 复制代码
sudo systemctl status mysqld.service

开机启动

bash 复制代码
sudo systemctl enable mysqld.service

8.启动成功后,登录mysql和修改root密码

bash 复制代码
sudo /usr/local/mysql/bin/mysql -u root -p
bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

输入临时密码登录后的修改密码

bash 复制代码
linaro@linaro-alip:/usr/local/mysql/bin$ sudo /usr/local/mysql/bin/mysql -u root -p             
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \s
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Query OK, 0 rows affected (0.02 sec)

mysql> \s
--------------
/usr/local/mysql/bin/mysql  Ver 8.0.32 for Linux on aarch64 (MySQL Community Server - GPL)

Connection id:          9
Current database:       
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.32
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /usr/local/mysql/data/tmp/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 2 min 51 sec

Threads: 2  Questions: 7  Slow queries: 0  Opens: 129  Flush tables: 3  Open tables: 48  Queries per second avg: 0.040
--------------

mysql> 

9.配置环境变量

bash 复制代码
sudo echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile

刷新重新加载

bash 复制代码
source /etc/profile
bash 复制代码
linaro@linaro-alip:~$ sudo echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
linaro@linaro-alip:~$ source /etc/profile
linaro@linaro-alip:~$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

其他配置环境变量的方式 在/home/linaro 根据具体系统有一个.bashrc文件

bash 复制代码
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
bash 复制代码
source ~/.bashrc

2.卸载MYSQL8

1.停止运行和删除服务

卸载mysql8是基于上面安装mysql8的方式的,在卸载mysql8之前,停止 MySQL 服务,停止 MySQL 开机启动的服务

bash 复制代码
sudo systemctl stop mysqld.service
bash 复制代码
sudo systemctl disable mysqld.service

删除 systemd 服务文件

bash 复制代码
sudo rm -f /etc/systemd/system/mysqld.service
bash 复制代码
sudo systemctl daemon-reload

2.删除数据和安装目录

删除 MySQL 数据目录(谨慎哦)

bash 复制代码
sudo rm -rf /usr/local/mysql/data

删除 MySQL 安装目录

bash 复制代码
sudo rm -rf /usr/local/mysql

3.删除配置文件

删除 MySQL 的配置文件,通常位于 /etc/my.cnf

bash 复制代码
sudo rm -f /etc/my.cnf

4.删除用户和用户组

bash 复制代码
sudo userdel mysql
bash 复制代码
sudo groupdel mysql

5.移除环境变量

移除环境变量-删除指定行

bash 复制代码
sudo sed -i '/export PATH=$PATH:\/usr\/local\/mysql\/bin/d' /etc/profile
bash 复制代码
source /etc/profile

移除环境变量-删除指定行(如果环境变量是在.bashrc配置的)

bash 复制代码
sudo sed -i '/export PATH=$PATH:\/usr\/local\/mysql\/bin/d' ~/.bashrc
bash 复制代码
source ~/.bashrc

验证 PATH 环境变量是否已更新

bash 复制代码
echo $PATH
相关推荐
kobe_OKOK_2 小时前
windows 下载 pip包,debian离线安装
windows·debian·pip
ONE_SIX_MIX8 小时前
Debian 的 网络管理器 被意外卸载,修复过程
服务器·网络·debian
迷路爸爸18013 小时前
源码编译安装最新 tmux 教程(含 Debian/Ubuntu/CentOS/Arch/macOS 等系统)
linux·ubuntu·macos·centos·debian·tmux·archlinux
坐吃山猪1 天前
zk02-知识演进
运维·zookeeper·debian
森G1 天前
2一、u-boot下载编译
linux·arm开发
GilgameshJSS1 天前
STM32H743-ARM例程23-USB_HID
arm开发·stm32·嵌入式硬件
半夏微凉半夏殇2 天前
除了arm 还有那些开源的芯片架构
arm开发·架构·开源
XINVRY-FPGA2 天前
XC7A100T-2FGG484I Xilinx Artix-7 FPGA
arm开发·嵌入式硬件·fpga开发·硬件工程·信息与通信·信号处理·fpga
文火冰糖的硅基工坊2 天前
[嵌入式系统-123]:中高端图形处理器RM Mali-G610 MP4 GPU 是 ARM 公司推出的基于 Valhall 架构 的移动 GPU
arm开发·ai·架构·嵌入式·gpu
武文斌774 天前
项目学习总结:CAN总线、摄像头、STM32概述
linux·arm开发·stm32·单片机·嵌入式硬件·学习·c#