Ubuntu 22.04 安装MySql

news/2024/7/24 5:21:41 标签: mysql, 数据库, ubuntu

MySQL是非常常用的关系型数据库,无论是大厂还是小厂,都有它的身影。最大的优点是免费,安装起来也比较简单。

MySQL的架构

画了个简图,描述了下MySQL的架构。

其中的比较有趣的点在于连接池存储引擎连接池缓存了数据库和客户端的TCP连接,以减少建立连接的开销。存储引擎的使用则采用了插件化的方式,数据库引擎定义了接口,实现了接口就能被整合到数据库

安装

首先是更新软件包列表

sudo apt update

然后是安装mysql-server

sudo apt install mysql-server

安装时会询问一下,填个 y 即可。

装完之后,会自动启动服务,可以用systemctl status看下状态

sudo systemctl status mysql

为active代表启动没问题

修改安全配置

然后我们设置下安全配置

sudo mysql_secure_installation

会出现如下图,一般来说这里我们会选y,它会要求我们的密码达到一定的强度才能改成功

然后是是否删除匿名用户,也是 y

然后是一个安全选项,问是否要禁止远程登录MySQL。一般来说,业务服务和数据库的连接都是单独建账户,而不是使用root账户,所以这个也是y

然后是是否要移除测试数据库,选y

然后是要不要立即重新加载权限表,选y

修改root密码

用sudo登录mysql

sudo mysql

执行修改密码的sql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root123.';

注意要记一下密码,要不修改起来会比较麻烦。

最后刷新下权限

FLUSH PRIVILEGES;

修改访问配置

我们需要允许远程登录,所以这里要修改下配置

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address要改成0.0.0.0

然后重启服务

sudo systemctl restart mysql

连接测试

首先是添加防火墙策略,开放3306端口。如果没有启用防火墙,这一步可以省略

sudo ufw allow 3306

我们来建一个数据库,并创建一个允许远程连接的账户

创建数据库

create database mydata;

创建用户

CREATE USER 'friend'@'192.168.68.1' IDENTIFIED WITH 'mysql_native_password' BY 'Friend123.';

 简单说明下

  • CREATE USER: 用于创建一个新用户。
  • friend: 这是你要创建的用户的用户名。
  • 192.168.68.1: 这是允许连接远程主机的 IP 地址。只有来自该 IP 地址的连接才能使用这个用户进行认证和访问数据库
  • IDENTIFIED WITH 'mysql_native_password': 指定用户的认证方式。在这里,使用的是 MySQL 原生密码认证方式。
  • IDENTIFIED BY 'Friend123.': 用于设置用户的密码。

 然后是授权

GRANT ALL PRIVILEGES ON mydata.* TO 'friend'@'192.168.68.1';

刷新权限

FLUSH PRIVILEGES;

然后使用工具连接即可连接成功。


http://www.niftyadmin.cn/n/5330766.html

相关文章

【每日小bug】mybatis plus id注解错误导致的问题

插入数据 id不为自增 指定了主键,没有指定自增。会导致出现 修改如上 报错 Data truncation: Out of range value for column ‘id’ at row 1 数据库是bigint,java中是Integer。 修改如上

IOS-相机权限申请-Swift

配置描述 在Info.plist文件中,新建一个键值对Privacy - Camera Usage Description(或者NSCameraUsageDescription),值为申请描述说明,自定义的 申请 然后在需要申请的文件中导入AVFoundation import AVFoundation…

Python面向对象编程(三)自省机制、super函数、with...as...语句

自省机制 自省是指检查某事物以确定它是什么,它知道什么以及它能够做什么的能力 对于类来说,主要的自省方法有:dir()、__dict__ class A():name userclass B(A):def __init__(self,age):self.age ageI B(12) print(I.__dict__) print(B…

MySQL语句 | 在MySQL中解析JSON或将表中字段值合并为JSON

MySQL提供了一系列的JSON函数来处理JSON数据,包括从JSON字符串中提取值和将表中字段值合并为JSON等。 在MySQL中解析JSON 可使用JSON_EXTRACT函数提取JSON字符串中指定字段的值,使用JSON_UNQUOTE函数去除提取的字符串值周围的引号,以得到原…

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息 2024/1/16 17:55 百度:RK3399 ALC5640 RK3399 RT5640 BING:RK3399 ALC5640 LINE-IN接麦克风不会有声音的。 耳机只有右边有声音,但是偏小,可以通过音量…

Java设计模式之状态模式详解

Java设计模式之状态模式详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一同探讨Java设计模式之状态模式,这是代码中的智能状…

cookie和session的工作过程和作用:弥补http无状态的不足

cookie是客户端浏览器保存服务端数据的一种机制。当通过浏览器去访问服务端时,服务端可以把状态数据以key-value的形式写入到cookie中,存储到浏览器。浏览器下次去服务服务端时,就可以把这些状态数据携带给服务器端,服务器端可以根…

Python 3 字符串的基本使用

介绍 字符串是一个或多个字符(字母、数字、符号)的序列,可以是常量,也可以是变量。字符串由 Unicode 组成,是不可变的序列,这意味着它们是不变的。 由于文本是我们在日常生活中使用的一种常见数据形式&am…