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
相关推荐
2301_8035545212 分钟前
vim,gcc/g++,makefile,cmake
linux·编辑器·vim
惜.己34 分钟前
Linux常用命令(十四)
linux·运维·服务器
喝醉的小喵1 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
linkingvision1 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
付出不多2 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
belldeep2 小时前
WSL 安装 Debian 12 后,Linux 如何安装 vim ?
linux·debian·vim
源远流长jerry3 小时前
MySQL的缓存策略
数据库·mysql·缓存
wqqqianqian3 小时前
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
linux·word·自定义·pageoffice·数据区域
南棱笑笑生3 小时前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统更新boot.img
linux·运维·ubuntu
XMYX-03 小时前
Linux du 命令终极指南:从基础到精通
linux·服务器