MySQL笔记---Ubuntu环境下从零开始的MySQL

1. 安装MySQL

1.1 自动安装(固定版本)

  • 更新软件包列表:在终端中执行以下命令,以更新系统的软件包列表:

    复制代码
    sudo apt update
  • 安装MySQL服务器:运行以下命令安装MySQL服务器:

    复制代码
    sudo apt install mysql-server

1.2 手动安装(特定版本)

  • 检查是否已安装mysql或mariadb:在终端中执行以下命令,有结果表示已安装:

    复制代码
    sudo dpkg -l | grep mysql-server
    sudo dpkg -l | grep mariadb

2. 首次登录MySQL

2.1 检查mysql是否正常运行

  1. 检查MySQL状态:使用以下命令检查MySQL是否正在运行:

    复制代码
    sudo systemctl status mysql
  2. 启动MySQL服务 :安装完成后,MySQL服务会自动启动。如果未启动,可以使用以下命令启动:

    复制代码
    sudo systemctl start mysql
  3. 可选择将MySQL设置为开机自启动:使用下面的指令来设置开机自启动:

    复制代码
    sudo systemctl enable mysql

2.2 首次登陆

mysql是需要账号密码进行登录后使用的,在mysql安装好之后会默认存在一个root账户,可使用如下的指令进行登录:

bash 复制代码
mysql -u [用户名(root)] -p

此时,会跳出要求你输入密码的提示,可我们并不知道密码。

要完成首次登录,有以下三种方式:

  • 获取临时密码:在终端中执行以下命令,获取临时密码(较新版本可能失效):

    bash 复制代码
    sudo grep 'temporary password' /var/log/mysqld.lo
  • 更改配置文件:在 " etc/my.cnf " 或 " etc/mysql/my.cnf "(可能因版本而不同)中添加:

    bash 复制代码
    [mysqld] # 假如配置文件中本来就包含了这一行,则不用再加
    skip-grant-tables

    添加完成之后,用root账户进行登录时,在输入密码环节可以直接回车跳过。

  • 直接进入:博主自己乱试试出来的:

    bash 复制代码
    sudo mysql

    甚至不会要求你输入密码。

完成登录之后可以使用如下指令设置密码:

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

也可以使用CREATE USER语句来创建一个新用户。例如,要创建一个名为newuser,密码为password的用户,可以使用以下命令:

bash 复制代码
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

如果希望用户能从任何主机连接到MySQL服务器,可以将localhost替换为%。但出于安全考虑,建议明确指定来源主机。

至于新用户的权限问题,我们之后再慢慢讨论。

2.3 其他配置

可以在配置文件中添加如下两行配置(似乎在现在的版本中不用配置也可):

bash 复制代码
character-set-server=utf8 #使用utf-8编码格式
default-storage-engine=innodb #使用innodb存储引擎

3. MySQL架构

MySQL当前应用最为广泛的关系型数据库,采用C/S架构,即Client/Server(客户端/服务器)架构。

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。

为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如下:

在我们的主机当中查找mysql有关的进程会发现有两个进程:mysql 和 mysqld。

其中,mysql是客户端(Client),而mysqld就是服务端(MySQL),所以在某些操作系统中或MySQL版本中,开始,关闭,重启命令的对象是mysqld。

mysqld的逻辑架构如下:

  • 连接层:负责处理客户端的连接请求,进行身份验证和权限管理。当客户端发送连接请求时,MySQL服务器会在连接层接收请求,分配一个线程来处理该连接,随后进行身份验证。

  • 服务层:是MySQL的核心组件,负责提供各种数据库操作所需的基本功能,如SQL语法处理、事务管理、锁管理等。包括SQL接口、解析器、优化器、缓存等。

  • 引擎层:负责存储数据和执行SQL语句。MySQL支持多种存储引擎,如InnoDB、MyISAM、Memory等,每种引擎各有特点,根据实际需求进行选用。

相关推荐
yumgpkpm1 小时前
华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
大数据·数据库·mysql·华为·oracle·kafka·cloudera
XiangrongZ2 小时前
江协科技STM32课程笔记(五)— ADC模数转换器
笔记·科技·stm32
程序员云帆哥2 小时前
MySQL JDBC Driver URL参数配置规范
数据库·mysql·jdbc
Olrookie3 小时前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
请你喝好果汁6413 小时前
Conda_bashrc 初始化机制学习笔记
笔记·学习·conda
三三木木七4 小时前
mysql拒绝连接
数据库·mysql
唐古乌梁海4 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql
꒰ঌ 安卓开发໒꒱4 小时前
Mysql 坏表修复
android·mysql·adb
_李小白4 小时前
【Android Gradle学习笔记】第八天:NDK的使用
android·笔记·学习
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring