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
相关推荐
czhc11400756632 分钟前
JAVA1026 方法;类:抽象类、抽象类继承;接口、接口继承 Linux:Mysql
java·linux·mysql
二进制_博客40 分钟前
sqoop从hive导出mysql常见错误汇总
hive·mysql·sqoop
王同学_11642 分钟前
Linux系统端口关闭并排查相关自启动项(麒麟环境)
linux·运维·服务器
大聪明-PLUS1 小时前
Linux 中的 DNS 工作原理(二):各级 DNS 缓存
linux·嵌入式·arm·smarc
阿杰AJie1 小时前
数据库id生成方案
后端·mysql
Xiaoweidumpb1 小时前
Linux Docker docker-compose 部署python脚本
linux·python·docker
郝学胜-神的一滴1 小时前
使用 Python 元类与属性实现惰性加载:Effective Python 第47条
linux·服务器·开发语言·python
Thepatterraining1 小时前
MySQL Java开发终极教程:三种技术栈对比,大厂资深开发经验分享
数据库·mysql
Hefin_H2 小时前
Linux 多用户服务器限制单用户最大内存使用(systemd user.slice)
linux·运维·服务器
nassi_2 小时前
开发板网络配置
linux·网络·嵌入式硬件