ubuntu 20.04 下安装mysql 8.0.22 并开启远程连接
2024-11-14
503 字约 2 分钟
...ubuntu 20.04 下安装mysql 8.0.22 并开启远程连接
前两天想把学校做的数据库作业搬到ubuntu云服务器上去,搞了我好久,踩坑太多了,希望记录一下给遇到同样问题的人
以下所有操作在管理员模式下进行,若不在管理员模式下请在代码前加上sudo
第一步 更新所有软件
apt-get update
第二步 安装mysql
apt-get install mysql-server
弹出以下提示
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
验证密码组件可用于测试密码并提高安全性。它检查密码的强度,
并允许用户仅设置足够安全的密码。
您想设置“验证密码”组件吗?
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
默认情况下,MySQL安装有一个匿名用户,允许任何人登录MySQL而无需为其创建用户帐户。
这仅用于测试,并使安装过程更流畅。在移入生产环境之前,应先删除它们。删除匿名用户?
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
通常,仅应允许root从'localhost'连接。这样可以确保某人无法猜测网络中的root密码。
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
默认情况下,MySQL带有一个名为“ test”的数据库,任何人都可以访问。这也仅用于测试,应在移入生产环境之前将其删除。
删除测试数据库并访问它? (按y | Y表示是,按其他任何键表示否):
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
重新加载特权表将确保到目前为止所做的所有更改将立即生效。现在重新加载特权表? (按y | Y表示是,按其他任何键表示否):
第三步完成后登陆数据库
mysql -u root -p
先查看root的host
use mysql;
select user,host from user;

可以看到root的host为localhost即只有本地能够登陆
第四步 修改root的host为% 即无论在哪台主机上都能够登陆
update user set host='%' where user='root' and host='localhost';
第五步 修改加密规则
因为mysql 8.0 之前的版本中加密规则是mysql_native_password,而在mysql 8之后,加密规则是caching_sha2_password,所以如果你的客户端低的话就还原成mysql_native_password,如果不是请跳过此步骤。
alter user 'root'@'%' identified with mysql_native_password by 'abc123'
第六步 刷新权限
flush privileges
第七步 修改 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
只需注释掉 bind-address = 127.0.0.1,在前面加#

如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →数据库2026-04-13
SQLite FTS5 全文搜索引擎详解
FTS5(Full Text Search 5)是 SQLite 内置的 全文搜索扩展 ,让你在不依赖外部搜索引擎(Elasticsearch、Solr)的情况下,用纯 SQL 实现高性能的文本检索。它的 API 比前代 FTS3/FTS4 更清晰,性能更好,是 SQLite 全文搜索的首选方案。 一、FTS5 是什么 简单说: FTS5 让你像查数据库一样搜索文本内容 。 传统 LIKE ‘%关键词%’ 的问题: 每次查询都要扫描全表...
学习
数据库2026-03-18
数据库索引核心原理笔记:从作用机制到底层实现
摘要 :本文系统梳理了数据库索引的核心作用、B+ 树底层原理、聚簇与非聚簇索引的区别,以及索引生效的真实逻辑。重点澄清了“索引查询是否等于全表扫描”的常见误区,并总结了索引设计的最佳实践。 一、索引的核心作用:用空间换时间 索引是数据库提升查询性能的“核武器”,其本质是 通过额外的存储空间和写入代价,换取读取速度的指数级提升 。 1\. 主要收益 加速数据检索 :将时间复杂度从 $O(N)$(全表扫描)降低至 $O(\log N)$(树...
学习
数据库2025-03-05
MySQL 数据库常用命令大全
1\. MySQL命令 MySQL命令是用于与MySQL数据库进行交互和操作的命令。这些命令可以用于各种操作,包括连接到数据库、选择数据库、创建表、插入数据、查询数据、删除数据等。 2\. MySQL基础命令 默认端口号:3306 查看服务器版本:select version(); 或者 cmd命令 mysql verison 登录数据库:mysql uroot p 退出数据库:exit/quit 查看当前系统下的数据库:show da...
学习
数据库2024-06-22
MySQL常用命令大全
打开 Linux 或 MacOS 的 Terminal (终端)直接在 终端中输入 windows 快捷键 win + R,输入 cmd,直接在 cmd 上输入 1、mysql服务的启动和停止 启动失败可按快捷键 win+R,输入 services.msc,找到MySQL服务器的名称启动 2、登陆mysql 键入命令mysql u root p, 回车后提示你输入密码,然后回车即可进入到mysql中了 3、增加新用户 例:增加一个用户u...
学习
数据库2024-06-22
Prisma 的全部命令和 schema 语法
init:创建 schema 文件,初始化项目结构。 generate:根据 schema 文件生成客户端代码。 db:包括数据库与 schema 的同步。 migrate:处理数据表结构的迁移。 studio:提供图形化界面进行 CRUD 操作。 validate:验证 schema 文件的语法。 format:格式化 schema 文件。 version:显示版本信息。 环境设置与初始化 首先,我们需要创建一个新的项目并设置 Pri...
学习
数据库2024-06-20
prisma
prisma : 什么是prisma? 是一个现代的开源数据库工具集,提供了一系列工具来简化数据库操作。主要用于Node.js和TypeScript环境,旨在提供一个强大、灵活且易于使用的数据库访问层 和我们上一章节用到的knex比起来,这是真正企业级的ORM工具。但不管是 还是 都是流行的ORM(对象关系映射)工具 他们两者之间各有优势, 是企业级基本上就代表了没有 那么轻便 但不具备轻便性的同时也拥有了更多强大的功能(更现代、高级别...
学习
评论
请登录后发表评论
去登录