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
    • 卸载曾经的mysql或mariadb环境:假如已经安装了mysql或mariadb,使用一下命令来进行卸载:

      sudo apt remove mysql-server
      sudo apt remove mariadb
      
    • 在官网上下载特定版本的mysql:http://repo.mysql.com/,注意下载的mysql版本要与自己的操作系统兼容:

    • 将下载的安装包上传到自己的机器上:如果使用的平台是云服务器,可以在命令行使用rz指令来接收安装包:

    • 安装mysql:在包含安装包的目录下输入下面的指令来进行安装:

      sudo rpm -Uvh [安装包]

      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账户,可使用如下的指令进行登录:

      mysql -u [用户名(root)] -p

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

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

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

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

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

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

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

        sudo mysql

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

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

      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

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

      CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
      

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

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

      2.3 其他配置

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

      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等,每种引擎各有特点,根据实际需求进行选用。

       

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/981137.html

      如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

      相关文章

      【六祎 - Note】SQL备忘录;DDL,DML,DQL,DCL

      SQL备忘录 from to : 点击访问源地址

      简易的微信聊天网页版【项目测试报告】

      文章目录 一、项目背景二、项目简介登录功能好友列表页面好友会话页面 三、测试工具和环境四、测试计划测试用例部分人工手动测试截图web自动化测试测试用例代码框架配置内容代码文件(Utils.py)登录页面代码文件(WeChatLogin.py)好…

      FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台

      文章目录 前言一、生态系统1. 金融AI代理(Financial AI Agents)2. 金融大型语言模型(Financial LLMs)3. LLMOps4. 数据操作(DataOps)5. 多源LLM基础模型(Multi-Source LLM Foundation Models&am…

      【软考-架构】1.3、磁盘-输入输出技术-总线

      GitHub地址:https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 文章目录 存储系统💯考试真题输入输出技术💯考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间; 等待时间为等待读写的扇区…

      USRP4120-通用软件无线电平台

      1、产品描述 USRP4120平台是彬鸿科技公司推出的以XILINX XC7Z020 SOC处理器为核心,搭配ADI AD9361射频集成芯片,针对无线通信系统科研与教学实验场景的一款通用软件无线电平台。产品频率范围70MHz~6GHz,模拟带宽200KHz~56MHz,支持…

      MAVEN的安装和配置指南【超详细】

      提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装Maven1.下载适合自己的版本2.配置环境变量3.验证环境变量是否配置成功 二、MAVEN的配置1.配置本地仓库2.配置镜像仓库3.创建一个简单的Maven项目 总结 …

      数据结构:二叉搜索树(排序树)

      1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…

      Observability:使用 Elastic Agent 跟踪你的 Steam Deck 游戏

      作者:来自 Elastic AndersonQ 让我们以不同的方式看待可观察性,并使用我们最喜欢的工具来监控我们的游戏性能。今天,我们将探讨如何使用 Elastic Agent 来监控 Steam Deck,以便我们可以看到我们玩得最多的游戏、它们消耗了多少资源…

      20250227解决飞凌OK3588-C的linux R4通过adb拷贝文件速度过慢的问题

      20250227解决飞凌OK3588-C的linux R4通过adb拷贝文件速度过慢的问题 2025/2/27 16:51 缘起:最近测试OK3588-C的最新的R1版本的SDK,adb pull的速度为28.8 MB/s Z:\version\OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1 我司使用4线的USB2.0,…

      cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼

      一、基础使用:Cesium.js基础使用(vue)-CSDN博客 1、基础路径 为 Cesium 库设置一个全局变量 CESIUM_BASE_URL,用于指定 Cesium 的资源文件(如 WebGL shaders、纹理、字体等)的 示例场景:假设你…

      C# Unity 唐老狮 No.4 模拟面试题

      本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: 全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体格式,…

      Docker 学习(二)——基于Registry、Harbor搭建私有仓库

      Docker仓库是集中存储和管理Docker镜像的平台,支持镜像的上传、下载、版本管理等功能。 一、Docker仓库分类 1.公有仓库 Docker Hub:官方默认公共仓库,提供超过10万镜像,支持用户上传和管理镜像。 第三方平台:如阿里…

      Oracle 数据库基础入门(四):分组与联表查询的深度探索(上)

      在 Oracle 数据库的学习进程中,分组查询与联表查询是进阶阶段的重要知识点,它们如同数据库操作的魔法棒,能够从复杂的数据中挖掘出有价值的信息。对于 Java 全栈开发者而言,掌握这些技能不仅有助于高效地处理数据库数据&#xff0…

      Lua | 每日一练 (4)

      💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Lua | 每日一练 (4)题目参考答案线程和协程调度方式上…

      我代表中国受邀在亚马逊云科技全球云计算大会re:Invent中技术演讲

      大家好我是小李哥,本名叫李少奕,目前在一家金融行业公司担任首席云计算工程师。去年5月很荣幸在全球千万名开发者中被选为了全球亚马逊云科技认证技术专家(AWS Hero),是近10年来大陆地区仅有的第9名大陆专家。同时作为…

      C++蓝桥杯基础篇(七)

      片头 嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(七),学习相关字符串的知识,准备好了吗?咱们开始咯! 一、字符与整数的联系——ASCII码 每个常用字符都对应一个-128~127的…

      显式 GC 的使用:留与去,如何选择?

      目录 一、什么是显式 GC? (一) 垃圾回收的基本原理 (二)显式 GC 方法和行为 1. System.gc() 方法 2. 显式 GC 的行为 (三)显式 GC 的使用场景与风险 1. JVM 如何处理显式 GC 2. 显式 GC…

      2025.03.03(第一天)

      1、常见的高危端口号有哪些,并涉及到哪些攻击方式 端口号服务常见攻击方式21FTP匿名登录、文件上传漏洞22SSH暴力破解、密钥泄露、中间人攻击53DNSDNS劫持、DNS缓存投毒、DDoS放大攻击80/443HTTP/HTTPSSQL注入1433MSSQL暴力破解、SQL注入、远程代码执行3306MySQLSQ…

      MySQL数据库基本概念

      目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…

      确保移动设备上机器学习的安全性:挑战与最佳实践

      随着企业不断推出更智能、个性化且响应迅速的体验,AI处理能力在移动设备中的普及,促使了机器学习(ML)本地集成的应用和SDK的快速发展。2024年谷歌I/O大会报告中强调了这一趋势,谷歌鼓励开发者在移动应用中使用本地机器…