当前位置: 首页 > news >正文

如何在 Ubuntu 20.04 LTS 上安装 MySQL 8

在本文中,我们将演示如何使用命令行在 Ubuntu 20.04 上安装 MySQL 8。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

介绍

MySQL 是开源关系数据库管理服务器,主要用于基于 Web 的技术,归 Oracle 所有。

先决条件

  • Ubuntu 20.04 LTS 系统
  • 使用 sudo 权限的 SSH 访问
  • 防火墙端口:3306

MySQL 8.0 中的新功能

  • 跨国数据词典
  • 原子数据定义语句支持
  • 增强安全性和帐户管理。
  • 持久运行时配置
  • 表加密管理
  • MySQL 的 JSON 功能增强
  • 支持不同类型的索引和查询优化
  • 支持窗口功能
  • 处理多个网络接口上的客户端连接

如果您想了解 MySQL 8.0 的详细功能,请访问此链接。

步骤 1:下载并安装 MySQL 8 APT 存储库

Ubuntu 自带默认软件包存储库,并且现在是最新版本,如果我们想要添加/安装最新的存储库,那么我们必须添加/安装软件包存储库。

下面是使用命令行添加/下载 MySQL APT 存储库的命令:

$ sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb

然后,以下命令安装上面下载的 apt 存储库,

$ sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb

当我们运行上述命令时,将打开如下提示,单击“Ok”。

# sudo apt-get update

# sudo apt-get install mysql-server

步骤 2:MySQL密码

接下来,我们将提示您输入 MySQL root密码来访问数据库。

输入密码后,它会要求使用密码加密功能,建议使用,但在这里我选择使用传统身份验证方法。

步骤3:安全MySQL安装

MySQL 服务器附带一个脚本mysql_secure_installation,它可以执行多个与安全相关的操作,

在命令提示符下运行以下脚本。首先需要输入在 MySQL 设置期间创建的 root 密码。

系统会询问您是否选择“验证密码插件”。这使我们能够测试 MySQL 密码并提高安全性。

接下来,您必须对以下安全功能输入“Yes”或“No” ,

  • 更改 root 密码?(按Y |Y 表示是,按任何其他键表示否)
  • 删除匿名用户?(按Y |Y 表示是,按任何其他键表示否)
  • 不允许远程 root 登录?(按Y |Y 表示是,按任何其他键表示否)
  • 删除测试数据库并访问它?(按Y |Y 表示是,按任何其他键表示否)
  • 现在重新加载权限表吗?(按Y |Y 表示是,按任何其他键表示否)

Securing the MySQL server deployment.
Enter password for user root:
Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: No

Change the password for root ? ((Press y|Y for Yes, any other key for No) : No

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
 
Remove test database and access to it? (Press y|Y for Yes, any other key for No)  : y
 
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

 Success.
 All done!

我们已经介绍了如何在 Ubuntu 20.04 LTS 上安装 MySQL 8。

步骤4:登录MySQL数据库

使用以下命令登录 MySQL 数据库

# mysql -u root -p

这里,-u标志指定用户名,-p标志指定密码。

输入密码后,我们可以看到下面的欢迎信息,

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 90
Server version: 8.0.19 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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.

步骤5:创建MySQL远程用户

首先,使用命令行以 root 用户身份登录 MySQL 服务器,使用用户名 root 和密码登录 MySQL

# mysql -u root -p

下面是创建用户的命令,这里我创建用户“ fosstechnix ”。

mysql> CREATE USER 'fosstechnix'@'%' IDENTIFIED BY 'fosstechnix@123';

接下来,使用以下命令为数据库分配权限,这里我将所有数据库权限分配给用户 fosstechnix,如果要为特定数据库分配权限,请将“。”替换为数据库名称。

mysql> GRANT ALL PRIVILEGES ON * . * TO 'fosstechnix'@'%';

或者如果您想允许“fosstechnix”用户授予其他用户权限。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'fosstechnix'@'%' WITH GRANT OPTION;

要使重新加载权限生效,请使用以下命令:

mysql> FLUSH PRIVILEGES;

步骤6:启用 MySQL 远程访问

默认情况下,出于安全原因,MySQL 数据库服务器的远程访问是禁用的。要启用 MySQL 服务器的远程连接,我们必须更改 MySQL 配置文件中的 bind-address。打开/etc/mysql/mysql.conf.d/mysqld.cnf文件

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在 [mysqld] 部分下面找到以下行,

[mysqld]
bind-address  = 127.0.0.1

并将其替换为

bind-address = 0.0.0.0

重启MySQL服务器即可生效。

$ sudo systemctl restart mysql.service

在系统启动时启用 MySQL 8。

$ sudo systemctl enable mysql.service

步骤 7:MySQL 服务的启动、停止、重启和状态

启动 MySQL 服务

$ sudo systemctl start mysql.service

停止 MySQL 服务

$ sudo systemctl stop mysql.service

重新启动 MySQL 服务

$ sudo systemctl restart mysql.service

检查 MySQL 服务的状态

$ sudo systemctl status mysql.service

故障排除

Ubuntu/Debian apt-get “KEYEXPIRED: 以下签名无效” 如何使用 apt 解决密钥过期 (KEYEXPIRED)

更新 apt 软件包时,如果您收到 KEYEXPIRED 消息( A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5 )

使用以下命令检查过期的密钥列表,

$ sudo apt-key list | grep -A 1 expired

输出:

  pub   dsa1024 2003-02-03 [SCA] [expired: 2019-02-17]
      A4A9 4068 76FC BD3C 4567  70C8 8C71 8D3B 5072 E1F5
uid           [ expired] MySQL Release Engineering <mysql-build@oss.oracle.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg

我们可以看到过期的密钥列表,

更新密钥

使用以下命令更新密钥,

$ sudo apt-key adv --keyserver keys.gnupg.net --recv-keys  70C8 8C71 8D3B 5072 E1F5 [KEY]

输出:

Executing: /tmp/apt-key-gpghome.5R54mS1bQd/gpg.1.sh --keyserver keys.gnupg.net --recv-keys 8C718D3B5072E1F5
gpg: key 8C718D3B5072E1F5: 3 duplicate signatures removed
gpg: key 8C718D3B5072E1F5: 99 signatures not checked due to missing keys
gpg: key 8C718D3B5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>" 26 new signatures
gpg: Total number processed: 1
gpg:         new signatures: 26

结论

我们已经介绍了如何在 Ubuntu 20.04 上安装 MySQL 8、保护 MySQL、创建 MySQL 用户、启用 MySQL 远程访问和 MySQL 8.0 管理命令。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

http://www.dtcms.com/a/393107.html

相关文章:

  • MuMu模拟器使用入门实践指南:从ADB连接到Frida动态分析
  • 条款5:优先选用auto, 而非显示类型声明
  • 强化学习原理(一)
  • 解读43页PPT经营分析与决策支持系统建设方案交流及解决经验
  • ubuntu24设置证书登录及问题排查
  • MySQL 备份与恢复完全指南:从理论到实战
  • 2011/12 JLPT听力原文 问题四
  • 实战free_s:在高并发缓存系统中落地“内存释放更安全——free_s函数深度解析与free全方位对比”
  • 异步通知实验
  • 用 C 语言模拟面向对象编程
  • 联邦学习论文分享:FedKTL
  • 智能体分类:从反应式到混合式的架构演进与实践
  • 【面板数据】上市公司企业ZF连接度数据集(1991-2024年)
  • 让codex像 cladue code一样 自动牛马
  • NeurIPS 2025 spotlight Autonomous Driving VLA World Model FSDrive
  • 多线程JUC
  • Qwen3技术之模型后训练
  • 服务端实现
  • 深入AQS源码:解密Condition的await与signal
  • ceph存储配置大全
  • 数据库造神计划第十六天---索引(1)
  • 【软件推荐】免费图片视频管理工具,让灵感库告别混乱
  • C语言入门教程 | 阶段二:循环语句详解(while、do...while、for)
  • GEO(Generative Engine Optimization)完全指南:从原理到实践
  • Msyql日期时间总结
  • IP地址入门基础
  • 【ROS2】Beginner: CLI tools
  • LeetCode刷题记录----279.完全平方数(Medium)
  • H7-TOOL的250M示波器模组采集CANFD标准波形效果,开口逻辑0,闭口逻辑1
  • 打工人日报#20250920