Ubuntu 上安装并配置 MySQL 8.0

在 Ubuntu 上安装并配置 MySQL 8.0,可以通过以下步骤来完成:

1. 添加 MySQL APT Repository

首先,下载 MySQL APT Repository 配置包:

bash 复制代码
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb

2. 安装 MySQL APT Repository 包

下载完成后,使用 dpkg 安装该包:

bash 复制代码
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

安装过程中,你会看到一个配置界面。选择 MySQL Server & Cluster (Currently selected: mysql-8.0),然后选择 OK。

3. 更新包列表

添加存储库后,更新包列表:

bash 复制代码
sudo apt-get update

4. 安装 MySQL 服务器

现在,你可以安装 MySQL 8.0 服务器:

bash 复制代码
sudo apt-get install mysql-server

安装过程中,你会被提示设置 MySQL root 用户的密码。按照提示完成安装。

5. 启动 MySQL 服务

安装完成后,启动 MySQL 服务并确保其在系统启动时自动启动:

bash 复制代码
sudo systemctl start mysql
sudo systemctl enable mysql

6. 验证安装

你可以检查 MySQL 服务的状态以确保其正常运行:

bash 复制代码
sudo systemctl status mysql

你还可以登录 MySQL 确认版本:

bash 复制代码
mysql -u root -p

在 MySQL 提示符下,输入以下命令以显示 MySQL 版本:

sql 复制代码
SELECT VERSION();

7. 完成安全设置(可选)

为了提高 MySQL 安全性,你可以运行 mysql_secure_installation 脚本:

bash 复制代码
sudo mysql_secure_installation

该脚本会引导你完成一些安全设置,包括设置 root 用户密码、删除匿名用户、禁止 root 远程登录以及删除测试数据库等。

8. 配置远程访问(可选)

如果你需要允许远程访问 MySQL 数据库,可以进行以下配置:

  1. 编辑 MySQL 配置文件

    编辑 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf(取决于系统),并确保 bind-address 设置为 0.0.0.0

    ini 复制代码
    bind-address = 0.0.0.0
  2. 允许远程用户连接

    登录 MySQL 并执行以下命令,允许特定用户从任意主机连接:

    sql 复制代码
    CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%';
    FLUSH PRIVILEGES;

    或者,更新现有用户的权限:

    sql 复制代码
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password';
    FLUSH PRIVILEGES;
  3. 配置防火墙

    确保防火墙允许 MySQL 端口(默认是 3306):

    bash 复制代码
    sudo ufw allow 3306
    sudo ufw reload

9. 优化配置(可选)

根据你的系统资源和需求,可以优化 MySQL 配置。编辑 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,调整以下参数:

ini 复制代码
[mysqld]
max_connections = 500
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M

修改完成后,重新启动 MySQL 服务以应用更改:

bash 复制代码
sudo systemctl restart mysql
相关推荐
IC 见路不走26 分钟前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘38 分钟前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵43 分钟前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
叁沐1 小时前
MySQL 06 全局锁和表锁:给表加个字段怎么有这么多阻碍?
mysql
汀沿河1 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35001 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
kikikidult2 小时前
(2025.07)解决——ubuntu20.04系统开机黑屏,左上角光标闪烁
笔记·ubuntu
小哥山水之间2 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
power 雀儿2 小时前
集群聊天服务器---MySQL数据库的建立
服务器·数据库·mysql
ldj20202 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos