在Linux下安装MySQL

news/2024/9/21 21:52:02

摘要
在学习MySQL语法之前,我们需要先解决在Ubuntu或CentOs环境下的“软件安装”的问题。本文梳理了安装前后的各个步骤及有关的注意事项,主要涵盖了安装前的准备工作、如何安装mysql,以及安装之后如何启动、如何正式使用这几个方面。建议读者先浏览一遍,留心相关的注意事项,或许能令自己稍后的安装过程更为顺利,同时也增进了对每个安装步骤的理解。

参考
本文主要参考了MySQL官方文档。

其他说明
由于本人学识和精力有限,写作过程中难免存在一些错漏,恳请读者在评论区批评指正。若本文对读者在学习方面有所帮助,也希望您能够不吝点赞支持,作为激励笔者继续写下去的动力。

安装MySQL 5.17


Ubuntu 16.04

  1. 打开命令行(CLI)界面:使用Ctrl + Alt + T或点击鼠标右键并选择Open Terminal

  2. 更新当前软件源,以便从源服务器下载最新的软件包列表,并获取完整度高的软件安装包的相关信息。

    sudo apt-get update
    
  3. 安装MySQL

    sudo apt-get install -y mysql-server mysql-client
    
  4. 安装完成之后,配置MySQL服务器,将“只允许本地访问”更改为“允许远程计算机接入”。

  • 步骤一:通过输入命令打开MySQL服务器对应的配置文件

    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
  • 步骤二: 在该文件中,先通过找到[mysqld]选项组中的bind-address,然后使用shift + i 键进入编辑模式,并输入#注释掉该行。修改的最终结果如下图最后一行所示。
    make that line with bind-address ineffective

  • 步骤三:按下esc键切换到命令模式,再输入:wq进行保存。

CentOS 7.4

我们不得不寻求其他的安装方式。
笔者在此环境下使用 yum install -y mysql 命令进行简易安装后,发现显示的安装内容并非MySQL而是Mariadb。后续查阅文档才知道,自CentOS 7.x开始,yum源使用Mariadb替代了MySQL。因此以下整理的内容主要参考了MySQL官方文档,读者亦可以通过MySQL官方文档自行查阅。

  1. 下载Linux对应版本的YUM源的rpm包
    通过右侧链接MySQL Yum Repository进入下载页面,由于笔者的环境是CentOS 7.4,选择第一个Download
    choose the right RPM Package to download

  2. 安装rpm包

    sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
    
  3. 选择MySQL版本,并验证选择结果

  • 首选方案

    • 步骤一:使用yum-config-manager命令禁用mysql80版本,并启用mysql57版本(注意:此项操作是鉴于我们要安装的版本为MySQL5.17。若要安装最新版本,则可直接略过此步骤)

      sudo yum-config-manager --disable mysql80-community
      sudo yum-config-manager --enable mysql57-community
      
    • 步骤二:验证选择结果,确保操作无误

      yum repolist enabled | grep mysql
      

      扩展:查看MySQL在YUM 库里的所有子库的启用情况。(此扩展可参照步骤二的代码进行对比学习,all表示不对状态进行限制)

      yum repolist all | grep mysql
      
  • 备选方案
    如果上述方法没有奏效,就需要我们手动配置“/etc/yum.repos.d/mysql-community.repo”文件了。

    • 步骤一:打开文件

      sudo vi /etc/yum.repos.d/mysql-community.repo
      
    • 步骤二:在文件中查找到[mysql80-community][mysql57-community]这两个选项组中的enabled,依次序调整为0、1。修改结果最终如下:

      [mysql80-community]
      name=MySQL 8.0 Community Server
      baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
      enabled=0 #在此处进行更改,将1改为0,表示禁用。(注意,这里呈现的是修改后的结果)
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
      [mysql57-community]
      name=MySQL 5.7 Community Server
      baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
      enabled=1 #在此处进行更改,将0改为1,表示启用。(注意,这里呈现的是修改后的结果)
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
      
    • 步骤三:按下 esc键切换到命令模式,再输入 :wq进行保存

  1. 安装MySQL服务器
    sudo yum install mysql-community-server
    

启动MySQL服务


在使用mysql之前,我们需要使用管理员权限启动mysqld服务进程。由于启动MySQL服务的命令与其他命令相似度很高,因此笔者将它们放到一齐,便于读者进行对比学习。所以实际上更应该称本节为“操控MySQL服务”。

Ubuntu 16.04

规律为:sudo service mysqld 操作动作或状态查询

启动服务:sudo service mysqld start
停止服务:sudo service mysqld stop
重启服务:sudo service mysqld restart
查看MySQL Server当前状态:sudo service mysqld status

CentOS 7.4

规律为: sudo systemctl 操作动作或状态查询 mysqld.service

启动服务:sudo systemctl start mysqld.service
停止服务:sudo systemctl stop mysqld.service
重启服务:sudo systemctl restart mysqld.service
查看MySQL Server当前状态:sudo systemctl status mysqld.service

注意事项
自MySQL5.7开始,便不再支持使用空密码登录。因此MySQL服务器在初始化的过程中,会将随机生成的密码保存到/var/log/mysqld.log文件中。

因此,我们可参照下述的思路及操作来解决这个问题:

  • 步骤一:查看该文件,获取随机密码

    sudo grep 'temporary password' /var/log/mysqld.log
    
  • 步骤二:使用该随机密码,登入系统
    输入此命令之后,根据提示输入上一条命令执行后所查看到的随机密码

    mysql -uroot -p
    
  • 步骤三:登入系统后,重新设定密码
    基于安全考虑,我们会被要求设置一个“至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,且总长度至少为8个字符”的密码。

    ALTER USER 'root'@'localhost' IDENTIFIED BY '使用新的密码代替此处文字';
    

登入并使用MySQL


继在mysqld正常启动之后,我们就可以令本机连接到MySQL服务器。

登入mysql会话

若使用的本机为服务器,则 “-h 服务器ip或域名” 可直接省略。因为缺少该参数的情况下,只要是在服务器环境中就会被自动解析为localhost或127.0.0.1。

mysql -p -u root -h 服务器ip或域名

使用mysql

SELECT VERSION(), USER(), NOW();
SELECT 1+2*3-4/5;

注意:上面的代码只是小试牛刀,实际上用处不大,因为这些sql语句脱离了所谓的上下文语境。请读者当作是尝鲜吧!

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

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

相关文章

深入剖析RocketMQ消息消费原理

本文参考转载至《RocketMQ技术内幕 第2版》一. 消息消费概述 消息消费以组的模式开展,一个消费组可以包含多个消费者,每个消费组可以订阅多个主题,消费组之间有集群模式和广播模式两种消费模式。集群模式是当前主题下的同一条消息只允许被其中一个消费者消费。广播模式是当前…

27. 守护进程、进程间通信

1. 僵尸进程与孤儿进程1.1 前言 在unix中,所有的子进程都是由父进程创建的,子进程再创建新的子进程 子进程的结束和父进程的运行是一个异步的过程,即子进程运行完成时,父进程并不知道 当子进程运行完成时,父进程需要调用wait()或waitpid()来获取子进程的运行状态 1.2 僵尸…

BUU XSS COURSE 1

启动靶机有留言板和登录功能,很明显是存储性xss,通过留言功能插入xss代码,获取cookie登录后台 先测试过滤 <script>alert(1);</script> 查看源代码发现script被过滤 <input onfocus="alert(xss);">好像只过滤了script找一个xss平台或者自己用服…

Wireshark开源抓包工具

Wireshark零基础使用教程(超详细) - 元宇宙-Metaverse - 博客园 (cnblogs.com)一、Wireshark是什么 Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。 它使用WinPCAP作为接口,直接与网卡进行数据报文交换。 二、Wiresha…

Prompt提示词概念

什么是prompt提示词? 叮!快来看看我和文心一言的奇妙对话~什么是提示工程(prompt engineering)?点击链接 https://yiyan.baidu.com/share/vMZ69XCFTc?utm_invite_code=P0HSh4T14mrU4TwxGbJ%2BSw%3D%3D&utm_name=SGlkZGVuX3N0YXJz&utm_fission_type=common -- 文心…

C#|.net core 基础 - 深拷贝的五大类N种实现方式

C#深拷贝复杂,文中介绍了五大类N种深拷贝方法,包括简单引用类型、手动方式、序列化方式、第三方库方式和扩展视野方式,并对比了性能。建议使用AutoMapper和DeepCloner等成熟库或根据性能需求选择表达式树和Emit。在实际应用中经常会有这样的需求:获取一个与原对象数据相同但…

智能写作新体验:AI写作小助手助力内容创作

在信息时代的浪潮中,内容创作已成为连接世界、传递价值的重要桥梁。然而,传统的写作方式在效率和质量上往往难以满足现代社会的需求。此时,AI写作小助手的诞生,为内容创作带来了全新的体验。本文将深入探讨AI写作小助手如何助力内容创作,开启智能写作的新篇章。AI写作小助…

基于Vue实现动态组织结构图

最近一个项目里有个前端绘制家谱图的需求,大概是下面这个样子:组件源码如下<template><table v-if="treeData.name"><tr><td :colspan="Array.isArray(treeData.children) ? treeData.children.length * 2 : 1":class="{pare…