在本文中,我们将演示如何使用命令行在 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 管理命令。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。