【超详细】MySQL环境安装

news2024/11/16 13:45:26

文章目录

  • 说明
  • 1、关闭不需要的环境
  • 2、检查并删除系统安装包
  • 3、获取 mysql 官方 yum 源
  • 4、安装 mysql yum 源,对比前后 yum 源
  • 5、看看 yum 源是否安装成功
  • 6、安装 mysql 服务
  • 7、查看配置文件和数据存储位置
  • 8、启动服务
  • 9、登录 mysql
      • 方法一:
      • 方法二:
      • 💥方法三:
  • 10、设置开机启动(可以不设)
  • 11、配置 my.cnf 文件
  • 12、常见问题
  • 💥💥💥mysql 常见登陆选项

说明

  • 安装与卸载中,用户全部切换成为 root,⼀旦 安装,普通用户能使用的
  • 初期练习,mysql 不进⾏用户管理,全部使⽤ root 进⾏,尽快适应 mysql 语句,后⾯学了用户管理,在考虑新建普通用户
  • mariadbmysql 的一个开源分支,如果安装了 mariadb 的话,那么就不用再安装 mysql 了,不过下面的步骤都是按照 mysql 来的

1、关闭不需要的环境

​ 这里演示的前提是存在 mysql 进程,为了演示如何将其服务关闭的过程!

​ 首先通过进程指令 ps 来检查是否有 mysql 的存在:

[root@VM-8-2-centos liren]# ps ajx | grep mysql
    1  6928  6927  6927 ?           -1 Sl      27   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
31787 10780 10779 29479 pts/40   10779 R+       0   0:00 grep --color=auto mysql  #这是grep进程
[root@VM-8-2-centos liren]#

​ 可以看到是存在的!所以我们通过 systemctl 指令将其服务关闭:

[root@VM-8-2-centos liren]# systemctl stop mysqld.service    # 停⽌mysql服务
[root@VM-8-2-centos liren]# ps ajx | grep mysql
31787 11274 11273 29479 pts/40   11273 R+       0   0:00 grep --color=auto mysql
[root@VM-8-2-centos liren]# 

​ 这个步骤就是关掉它的进程,因为我们要删除它的环境,肯定先要将它的进程关闭!

2、检查并删除系统安装包

​ 现在我们要检查一下机器中是否有曾经从远端拉取过来的安装包,对于 yum 来说,它下载下来的安装包格式是 .rpm,所以我们用来检查关于安装包的指令也是 rpm

[root@VM-8-2-centos liren]# rpm -qa | grep mysql
[root@VM-8-2-centos liren]#                               # 这种情况说明没有安装包

[root@VM-8-2-centos liren]# rpm -qa | grep mysql          # 这种情况说明存在安装包
mysql-community-common-5.7.41-1.el7.x86_64
mysql-community-server-5.7.41-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64
[root@VM-8-2-centos liren]#

​ 如果存在安装包,我们可以一个一个安装包去删除,但是这里我们可以使用 “管道 + xargs” 指令来批量删除安装包,指令如下:

[root@VM-8-2-centos liren]# rpm -qa | grep mysql | xargs yum -y remove          # xargs会将管道中的参数放到remove后面

​ 为了检测是否删除彻底,我们可以通过下面几个指令来检查:

[root@VM-8-2-centos liren]# rpm -qa | grep mysql            # 检查安装包还在不在
[root@VM-8-2-centos liren]#                               

[root@VM-8-2-centos liren]# ps ajx | grep mysql             # 检查是否服务关闭
31787 24039 24038 29479 pts/40   24038 R+       0   0:00 grep --color=auto mysql

[root@VM-8-2-centos liren]# ls /etc/my.cnf                  # 将MySQL启动时加载的配置文件删除
/etc/my.cnf
[root@VM-8-2-centos liren]# rm /etc/my.cnf
rm: remove regular file ‘/etc/my.cnf’? y

[root@VM-8-2-centos liren]# ls /var/lib/mysql/              # 曾经使用过的mysql的缓存数据,如果需要的话可以备份
auto.cnf    ca.pem           client-key.pem  ibdata1      ib_logfile1  performance_schema  public_key.pem   server-key.pem
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  mysql        private_key.pem     server-cert.pem  sys
[root@VM-8-2-centos liren]# 

3、获取 mysql 官方 yum 源

官方yum源网址

注意:最好安装和自己系统⼀致的 mysql 版本,否则可能会存在软件兼容性问题,下面指令查看自己的系统版本

[root@VM-8-2-centos liren]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)        # 说明是7.9版本,我们就去找7.9版本的

​ 在官方网站里面其实下载名称不是很明显:

​ 所以我们可以在空白处右击,查看网页源代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v0Rni739-1688361719027)(../img/image-20230605182102291.png)]

​ 点击图中红色方框中的链接,下载下来,然后通过云服务器中的 rz 指令从我们本地拉取到云服务器中:

[root@VM-8-2-centos MySQL]# rz
[root@VM-8-2-centos MySQL]# ll
total 12
-rw-r--r-- 1 root root 9224 Jun  5 18:22 mysql57-community-release-el7-9.noarch.rpm

​ 这样子我们就获得了 mysql 的安装包了!

4、安装 mysql yum 源,对比前后 yum 源

​ 我们的 yum 源安装之后是放到 /etc/yum.repos.d/ 的路径之下的,所以可以通过观察这个文件夹来看看安装前后的对比!

​ 另外安装 yum 源我们之前说过了,要使用 rpm 指令,因为 yum 源下载的安装包格式是 .rpm 的,再配合 rpm 的选项就能安装了:

# 安装前
[root@VM-8-2-centos MySQL]# ll /etc/yum.repos.d/
total 52
-rw-r--r-- 1 root root  614 Jun 21  2022 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 Nov 23  2020 CentOS-CR.repo
-rw-r--r-- 1 root root  649 Nov 23  2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root  230 Jun 21  2022 CentOS-Epel.repo
-rw-r--r-- 1 root root  314 Nov 23  2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root  630 Nov 23  2020 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Nov 23  2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 8515 Nov 23  2020 CentOS-Vault.repo
-rw-r--r-- 1 root root  616 Nov 23  2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo

# 进行安装
[root@VM-8-2-centos MySQL]# rpm -hvi mysql57-community-release-el7-9.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-9  ################################# [100%]
   
# 安装后
[root@VM-8-2-centos MySQL]# ll /etc/yum.repos.d/
total 60
-rw-r--r-- 1 root root  614 Jun 21  2022 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 Nov 23  2020 CentOS-CR.repo
-rw-r--r-- 1 root root  649 Nov 23  2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root  230 Jun 21  2022 CentOS-Epel.repo
-rw-r--r-- 1 root root  314 Nov 23  2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root  630 Nov 23  2020 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Nov 23  2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 8515 Nov 23  2020 CentOS-Vault.repo
-rw-r--r-- 1 root root  616 Nov 23  2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo
-rw-r--r-- 1 root root 1416 Sep 12  2016 mysql-community.repo  # 多了两个mysql文件
-rw-r--r-- 1 root root 1440 Sep 12  2016 mysql-community-source.repo

5、看看 yum 源是否安装成功

​ 这里使用 yum list | grep mysql 进行查看是否 yum 源存在:

[liren@VM-8-2-centos MySQL]$ yum list | grep mysql
Repository epel is listed more than once in the configuration
mysql57-community-release.noarch         el7-9                         installed
akonadi-mysql.x86_64                     1.9.2-4.el7                   os       
anope-mysql.x86_64                       2.0.12-1.el7                  epel     
apr-util-mysql.x86_64                    1.5.2-6.el7_9.1               updates  
calligra-kexi-driver-mysql.x86_64        2.9.10-2.el7                  epel     
collectd-mysql.x86_64                    5.8.1-1.el7                   epel     
dmlite-plugins-mysql.x86_64              1.15.2-12.el7                 epel     
dovecot-mysql.x86_64                     1:2.2.36-8.el7                os       
dpm-copy-server-mysql.x86_64             1.13.0-1.el7                  epel     
…………
…………
[liren@VM-8-2-centos MySQL]$ 

​ 可以看到它列举出来了,说明安装成功,这个时候我们把我们的安装包删掉,也可以不删,看个人选择!

[root@VM-8-2-centos MySQL]# rm mysql57-community-release-el7-9.noarch.rpm 
rm: remove regular file ‘mysql57-community-release-el7-9.noarch.rpm’? y
[root@VM-8-2-centos MySQL]# 

6、安装 mysql 服务

[root@VM-8-2-centos MySQL]# yum install -y mysql-community-server
[sudo] password for liren:
Loaded plugins: aliases, auto-update-debuginfo, fastestmirror, protectbase
Repository epel is listed more than once in the configuration
……
Installing : mysql-community-common-5.7.33-1.el7.x86_64 #公共模块
Installing : mysql-community-libs-5.7.33-1.el7.x86_64   #库
Installing : mysql-community-client-5.7.33-1.el7.x86_64 #客⼾端
Installing : mysql-community-server-5.7.33-1.el7.x86_64 #服务器
……
Complete!

​ 如果安装服务的时候报错了,那么可以看看下面的常见问题,不行再去网上找方法解决!

7、查看配置文件和数据存储位置

​ 安装结束之后,我们通过下面几步查看是否配置文件等都存在:

[root@VM-8-2-centos MySQL]# ls /etc/my.cnf      # mysql的启动配置文件
/etc/my.cnf

[root@VM-8-2-centos MySQL]# which mysqld        # mysql的服务端
/usr/sbin/mysqld

[root@VM-8-2-centos MySQL]# which mysql         # mysql的客户端
/usr/bin/mysql

8、启动服务

[root@VM-8-2-centos MySQL]# ps ajx | grep mysql            # 启动前
11917 23062 23061  9601 pts/41   23061 R+       0   0:00 grep --color=auto mysql

[root@VM-8-2-centos MySQL]# systemctl start mysqld         # 启动mysql服务端的指令,也可以是mysqld.service

[root@VM-8-2-centos MySQL]# ps ajx | grep mysql            # 启动后
    1 23147 23146 23146 ?           -1 Sl      27   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
11917 23181 23180  9601 pts/41   23180 R+       0   0:00 grep --color=auto mysql
[root@VM-8-2-centos MySQL]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1130/sshd           
tcp6       0      0 :::3306                 :::*                    LISTEN      23147/mysqld       # mysqld的网络状态

9、登录 mysql

方法一:

​ 这种方法可能一些新版本并不适用

# 获取临时root密码
[liren@VM-0-3-centos 9.9]$ sudo grep 'temporary password' /var/log/mysqld.log
2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for
root@localhost: yLMalT:v+5l*
# 使⽤临时密码登录
[liren@VM-0-3-centos 9.9]$ mysql -uroot -p
Enter password:

# 判断修改密码时候新密码是否符合当前的策略,不满⾜报错,不让修改,关闭它
# 安全强度,默认为中,即1,要求必须包含 数字、符号、⼤⼩写字⺟,⻓度⾄少为8位
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

# 密码最⼩⻓度
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

# 修改本地登录密码,暂不授权远程登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码

方法二:

​ 一般来说要看版本

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆⼀下
[root@VM-8-2-centos MySQL]# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)     # 新版本可能可以

💥方法三:

​ 对于这种方法主要就是去配置文件 my.cnf 加上跳过授权表,这种做法比较危险,但是目前我们只需要这么做,后面我们会学如何进行用户管理!

[root@VM-8-2-centos MySQL]# vim /etc/my.cnf

​ 然后在【mysqld】最后⼀栏配置(不知道是什么,就放在配置⽂件最后)加⼊:skip-grant-tables 选项,并保存退出

​ 接着重启 mysql 服务:

[root@VM-8-2-centos MySQL]# systemctl restart mysqld          # 除了使用restart,用stop搭配start也可以

​ 然后通过方法一中的登录操作就能免密登录了,直接按回车即可:

[root@VM-8-2-centos MySQL]# mysql -u root -p          # -u表示以谁的身份登录
Enter password:         # 这里按回车就行
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit             # 在此输入sql指令,使用quit可以退出
Bye
[root@VM-8-2-centos MySQL]#

10、设置开机启动(可以不设)

​ 对于云服务器来说,因为开启 mysql 服务其实是个守护进程,所以开机启动没必要!

​ 而如果是虚拟机的话,则会在开机的时候自己启动 mysql 服务!

#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload

11、配置 my.cnf 文件

​ 配置⼀下 my.cnf 主要是为了数据库客⼾端和服务器的**编码格式**,一般设为 utf-8 比较好,另外一些端口号的设置等等,上面给出的跳过授权表免密登录也是一个配置之一!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZqBAmSY-1688361719028)(../img/image-20230605224206721.png)]

​ 配置完毕,重启 mysql 即可!

12、常见问题

  • 比如 mysql 已经配置了客⼾端服务器 utf-8 编码,但是无法输入中文:确保你在终端命令行中可以输入中文

    [root@VM-8-2-centos MySQL]# env | grep LANG
    LANG=en_US.utf8
    
  • 安装遇到秘钥过期的问题:

    Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
    GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    解决⽅案:
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    

💥💥💥mysql 常见登陆选项

在这里插入图片描述

  • 如果我们在配置文件 my.cnf 中配置了默认端口号的话,我们可以不使用 -P 选项来指定访问的端口号
  • 如果我们不使用 -h 来指定登录哪台部署了 mysql 的主机,那么会默认登录本地主机
  • 目前我们采用免密码方式登录来学习,等后面学习了用户管理之后才要设置密码
  • 输入密码是不会回显的

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

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

相关文章

jedis使用,操作Redis数据库2

在刚刚ping通的基础上,再来通过jedis连接池连接redis 在resources下创建redis.properties配置文件,在配置文件中写如下内容 # 必配 # Redis服务器地址(域名或IP) redis.host192.168.40.100 # Redis服务器连接端口(Redis默认端口号是6379) redis.port6379 # Redis服务器连接密码…

Redis从入门到精通【进阶篇】之持久化 AOF详解

文章目录 0.前言1.详解1.1 AOF 文件的创建1.2. AOF 文件的写入1.3. AOF 文件的同步1. 3.1 同步磁盘上的所有数据1. 3.2 定期同步磁盘上的数据 1.4. AOF 文件的重写1.5. AOF 文件的恢复1.6. 小结 2. RDB和AOF混合方式3. Redis从入门到精通系列文章 0.前言 Redis 支持多种持久化…

Axure设计之滑动验证组件(动态面板)

一、案例效果 1、默认显示滑块、背景及提示文案; 2、滑块仅允许向右水平拖动,且不能超过背景区域; 3、滑块移动过程中,左侧区域样式跟随变化,右侧区域保持不变; 4、滑块为未拖动到最右侧时释放&#xff…

后书《乡村振兴战略下传统村落文化旅游设计》,交浅而言深者,愚也

后书《乡村振兴战略下传统村落文化旅游设计》,交浅而言深者,愚也

初学Spring boot (六) 自定义starter

学习回顾:初学Spring boot (五) 自动配置原理 自定义Starter 我们分析完毕了源码以及自动装配的过程,我们可以尝试自定义一个启动器来玩玩! 1、说明 启动器模块是一个 空 jar 文件,仅提供辅助性依赖管理&am…

B2a实例学习记录

B2a简介 只是把hit存到了hitcollection,只是统计了各自event结果,将每次event的运行结果存起来了,并没有做总的求和 如何在B2a的基础上,实现对某一个chamber的能量的累加 1 hit和SD(sensitive detector) 每一个s…

越权访问漏洞

越权漏洞 越权访问漏洞示意图 一、越权访问漏洞简介 1.类型 水平越权:通过更换的某个ID之类的身份标识,从而使A账号获得(增删查改)B账号的数据 垂直越权:使用低权限身份的账号,发送高权限账号的请求&…

Java——内部类

一、成员内部类 类中的东西都是成员, 1.1、成员内部类定义 定义成员内部类的格式: class OuterClass {//外部类class InnerClass{//内部类(内部类实际是外部类的一个属性)} }示例 public class Outer {private static int r…

使用Selenium-PO设计模式提高Web自动化测试效率

PO(page object)设计模式是在自动化中已经流行起来的一种易于维护和减少代码的设计模式。在自动化测试中,PO对象作为一个与页面交互的接口。测试中需要与页面的UI进行交互时,便调用PO的方法。这样做的好处是,如果页面的…

.Net之AOP - 使用Fody的代码静态编织实现AOP

简介(好久没写博客了) 万物皆可AOP,本篇文章主要讲解在.Net7中使用Fody的代码静态编织实现AOP。 一、前言 AOP AOP是指面向切面编程 (Aspect Oriented Programming),相信大家都再熟悉不过了,…

上海市“小巨人”竞争力指数榜单发布!上海三思居全市总榜第四!分项NO.1!

6月25日下午,2022 年上海市专精特新“小巨人”市场竞争力指数榜单”在上海市上海联合产权交易所正式发布。上海三思电子工程有限公司多项荣登指数榜单: ●指数总榜TOP10,上海三思以83.69的高分位居全市8072家“小巨人”企业第四位&#xff0…

军用电子设备人工智能时代正在到来

源自: 战略前沿技术 Al的应用快速增长 更大的图景 人工智能技术的多面性 增强作战人员能力 数据依赖 人工智能和机器学习:前面的路 对人工智能应用保持警惕 声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观…

vue+elementui实现联想购物商城,样式美观大方

目录 一、首页效果图对比 1.联想商城首页截图: 2.作者项目效果图: 二、商品详情效果图对比 1.联想官方截图: 2.作者项目截图: 三、项目实现 1.数据分离维护 2.首页推荐列表数据处理 3.商品详情数据动态获取完成交互 4.商品详…

MySQL原理探索——20幻读

20 幻读是什么?幻读会造成什么后果? 在上一篇文章最后,遗留了一个关于加锁规则的问题。今天,我们就从这个问题说起。 为了便于说明问题,这篇文章,我们就先使用一个小一点的表。建表和初始化语句如下&#…

【MySQL】MySQL PHP 语法,PHP MySQL 简介,查询,下载 MySQL 数据库, SQL 教程

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…

探究Vue源码:mustache模板引擎(4) 了解mustache转换概念,简述tokens转换

上文 探究Vue源码:mustache模板引擎(3) 通过编写简单正则了解mustache转换思路我们用正则表达式构建了一个简易版的render模板编译函数 但是 我们有特意强调过 mustache的render函数并非用简单正则实现的 因为这样无法实现循环和一些比较复杂的逻辑处理 它的实现基理可以参考这…

Ubuntu系统安装JDK教程

今天新买了一台阿里云服务器,因为centos 不提供了更新支持,所以Linux系统选择了Ubuntu 系统,今天就出一期 Ubuntu上安装的一系列教程,今天就先从JDK开始。 Ubuntu系统安装JDK教程 1、 jdk下载2、安装 lrzsz 命令 (仅限…

FreeRTOS_系统内核控制函数

目录 1. 系统内核控制函数预览 2. 系统内核函数详解 2.1 函数 taskYIELD() 2.2 函数 taskENTER_CRITICAL() 2.3 函数 taskEXIT_CRITICAL() 2.4 函数 taskENTER_CRITICAL_FROM_ISR() 2.5 函数 taskEXIT_CRITICAL_FROM_ISR() 2.6 函数 taskDISABLE_INTERRUPTS() 2.7 函数…

1. 数字mic驱动分析

一般遇到的音频硬件都是这样的 由于项目不需要播放只需要录音,于是将模拟的mic换成了数字mic,直接通过i2s连接到soc 由于还要使用alsa架构进行录音,所以这里不能简单的写个代码读i2s数据,需要虚拟出一个codec 上面就是我们这次要分…

第九十六天学习记录:Linux基础:实用操作Ⅰ

注:第一张图与学习记录无关,是为了参与CSDN的AI绘图活动 CtrlC强制停止 1、Linux某些程序的运行,如果想要强制停止它,可以使用快捷键CtrlC中止 2、在命令输入错误时,也可以通过快捷键CtrlC快速退出当前输入 CtrlD…