安装 MySQL 8.1
约 973 字大约 3 分钟
2026-02-01
确定Ubuntu版本
# 查看版本
lsb_release -a# 例如我的版本:
root@huanfa:/app/mysql/data/mysql# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy在MySQL官网查看版本并下载
# 通过官网连接,按照下图下载安装包
https://downloads.mysql.com/archives/community/# 在自己建的文件夹中下载文件
# 下载对应版本的文件(DEB Bundle)
sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.1.0-1ubuntu22.04_amd64.deb-bundle.tar解压文件
# 括号中的是指定路径,自选加不加(解压的文件不会自己创建文件夹,建议加一下,xxx表示对应文件夹)
sudo tar -xvf mysql-server_8.1.0-1ubuntu22.04_amd64.deb-bundle.tar (-C xxx)安装MySQL
# 在安装过程中可能会遇到缺少libaio1、libmecab2包,通过以下方法执行
sudo apt-get update
sudo apt-get install libaio1
sudo apt-get install libmecab2
# libmecab2 在安装时会显示需要新建root密码# 依次安装包。由于包之间有依赖关系,一定要按照顺序安装依次安装包。
# 由于包之间有依赖关系,一定要按照顺序安装
sudo dpkg -i mysql-common_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-client-plugins_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i libmysqlclient22_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-client-core_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-client_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-client_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-server-core_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-server_8.1.0-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-server_8.1.0-1ubuntu22.04_amd64.deb确认是否安装成功并新建外部可访问的root账号
1)确认安装成功
# 安装完成后验证MySQL是否安装成功
mysql -u root -p
# 密码为自己新建的,如果没有新建就不需要填密码# 正常安装完成后应该和下面相差不大
root@huanfa:/app/mysql/data/mysql# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.1.0 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> status
--------------
mysql Ver 8.1.0 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 11
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.1.0 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/run/mysqld/mysqld.sock
Binary data as: Hexadecimal
Uptime: 19 min 0 sec
Threads: 3 Questions: 17 Slow queries: 0 Opens: 140 Flush tables: 3 Open tables: 59 Queries per second avg: 0.014
--------------
mysql>2)新建外部访问的root账号
# 安装完成后查看用户信息
select host,user from mysql.user;
# 创建用户,再给用户给权限
create user root@'%' identified with mysql_native_password by 'root';
grant all on *.* to root@'%' with grant option;
flush privileges;
exit;
# 'root'改为自己的密码
# 修改MySQL配置文件中的bind-address
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在文件中修改或添加如下配置
bind-address = 0.0.0.0
# 重启mysql
sudo service mysql restart修改文件存储位置
# 停止MySQL服务
sudo service mysql stop# 创建新的数据存储目录
sudo mkdir -p /data/mysql
# 复制MySQL的数据到新的目录中
sudo cp -ar /var/lib/mysql /data/mysql
# 修复新的存储目录的权限
sudo chown -R mysql:mysql /data/mysql
# 修改MySQL的配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 编辑上述文件,在文件中找到datadir项,=后面的值即为MySQL的存储路径,修改为新的路径即可。即:
datadir = /data/mysql
# 注意:只是修改MySQL的配置文件是不行的,因为Ubuntu有访问控制系统apparmor,所以还需要修改与该访问控制系统相关的文件
sudo vim /etc/apparmor.d/usr.sbin.mysqld
# 查找到以下内容
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
# 并将其修改为:
/data/mysql/ r,
/data/mysql/** rwk,
# 修改访问控制文件
sudo vim /etc/apparmor.d/abstractions/mysql
# 查到到以下内容
/var/lib/mysql{,d}/mysql{,d}.sock rw
# 并将其修改为:
/data/mysql{,d}/mysql{,d}.sock rw
# 重启apparmor服务
sudo service apparmor restart
# 重启MySQL服务
sudo service mysql start# 在MySQL中验证存储位置
show variables like '%datadir%';
# 如下就是修改成功了
mysql> show variables like '%datadir%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| datadir | /var/lib/mysql/ |
+---------------+------------------------+
1 row in set (0.01 sec)贡献者
更新日志
2026/2/1 23:08
查看所有更新日志
24f1d-docs: 重构文档结构并迁移内容至新分类于