在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
相关推荐
szxinmai主板定制专家18 小时前
RK3568 + CODESYS+实时系统运动控制器PLC,支持 AI 视觉目标检测,预测性维护,混合多系统部署,多路模拟量采集
arm开发·人工智能·嵌入式硬件·fpga开发
XMAIPC_Robot1 天前
深度无人机自动驾驶仪,中小型无人机硬件在环仿真飞行
运维·arm开发·人工智能·fpga开发·无人机·边缘计算
番茄灭世神1 天前
Vscode开发/调试ARM单片机最新教程
c语言·arm开发·vscode·stm32·嵌入式·gd32
猫猫的小茶馆2 天前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
霞姐聊IT2 天前
x86程序移植到arm平台的四种场景及解决方案简介
arm开发
楼兰公子2 天前
《深入理解Linux网络技术内幕》配套学习大纲 + 源码Demo + 进阶实战实例
linux·arm开发·学习
键盘上的GG小怪兽GG2 天前
Debian 安装CUPS操作
linux·服务器·debian
lljss20202 天前
Arm GNU 工具链 命名规则
服务器·arm开发·gnu
底层开发智库3 天前
无需硬件开发板,从零构建并运行ARM aemfvp-a-rme软件栈
arm开发·arm
HMS工业网络3 天前
主从结合,安全互联:Anybus工业通信解决方案全栈升级
arm开发