【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程

news2024/11/24 20:54:30

说明:

  • 安装与卸载中,用户全部切换成为 root,一旦安装,普通用户就能使用。

一、卸载内置环境

1、卸载不要的环境

[root@VM-8-5-centos ~]$ ps ajx | grep mariadb # 先检查是否有mariadb存在
13134 14844 14843 13134 pts/0 14843 S+ 1005 0:00 grep --color=auto mariadb
19010 19187 19010 19010 ? -1 Sl 27 16:55 /usr/libexec/mysqld --basedir=/usr
--datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-
error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --
socket=/var/lib/mysql/mysql.sock
[root@VM-8-5-centos ~]$ systemctl stop mariadb.service # 停止mariadb服务
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
[root@VM-8-5-centos ~]$ ps axj | grep mariadb # 停止完成
13134 14976 14975 13134 pts/0 14975 S+ 1005 0:00 grep --color=auto mariadb

mariadb 其实就是 mysql,只不过是 mysql 的另一种拉出来的开源分支,也可以正常使用,如果不想卸载也是可以的。


2、检查系统安装包


[root@VM-8-5-centos ~]$ rpm -qa | grep mariadb
or
[root@VM-8-5-centos ~]$ rpm -qa | grep mysql
...
...
...

# 下面是打印出来的mysql的样例
[root@VM-8-5-centos ~]# 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

3、卸载这些默认的安装包

#卸载显示出来的mariadb/mysql安装包
[root@VM-8-5-centos ~]$ sudo yum remove mariadb # 还是试着将上面的包都一个一个卸载吧


备份/etc/my.cnf,备份/var/lib/mysql数据

4、获取 mysql 官方 yum 源

下载 MySQL yum包:

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

#1. 获取mysql官方yum源 http://repo.mysql.com/
# 一定要看好下面的文字!如果后面自己安装不成功,就看看这个
# 注意:最好安装和自己系统一致的mysql版本,否则可能会存在软件兼容性问题
# 查看自己的系统版本
# [root@VM-8-5-centos ~]# cat /etc/redhat-release
# CentOS Linux release 7.8.2003(Core)
# 可以进入 http://repo.mysql.com/,找一下和自己版本一致的资源
# 下载到你的本地,然后上传到你的Linux服务器

二、 配置 MySQL yum 源

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

安装 MySQL 源:rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

安装前
[root@VM-8-5-centos MySQL]$ ls
mysql57-community-release-el7-10.noarch.rpm

查看你本地的yum源 [每个人的都不同,没有mysql相关的yum源]
[root@VM-8-5-centos MySQL]$ ls /etc/yum.repos.d/ -al
total 96
drwxr-xr-x. 2 root root 4096 Apr 12 11:04 .
drwxr-xr-x. 106 root root 12288 Apr 12 10:50 ..
-rw-r--r-- 1 root root 2523 Dec 26 19:31 Centos-Base.repo
-rw-r--r-- 1 root root 614 Nov 10 18:42 CentOS-Base.repo_bak
-rw-r--r-- 1 root root 2523 Jun 16 2018 CentOS-Base.repo.bak
-rw-r--r-- 1 root root 1309 Apr 8 2020 CentOS-CR.repo
-rw-r--r-- 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 230 Nov 10 18:42 CentOS-Epel.repo
-rw-r--r-- 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 Apr 8 2020 CentOS-Media.repo
-rw-r--r-- 1 root root 998 Dec 11 2018 CentOS-SCLo-scl.repo
-rw-r--r-- 1 root root 971 Oct 29 2018 CentOS-SCLo-scl-rh.repo
-rw-r--r-- 1 root root 1331 Apr 8 2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 7577 Apr 8 2020 CentOS-Vault.repo
-rw-r--r-- 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1919 Apr 8 23:57 docker-ce.repo
-rw-r--r-- 1 root root 1050 Nov 1 04:33 epel.repo
-rw-r--r-- 1 root root 1149 Nov 1 04:33 epel-testing.repo
-rw-r--r-- 1 root root 173 Dec 9 16:08 google-chrome.repo
-rw-r--r-- 1 root root 1627 Apr 5 2017 mysql-community.repo #安装mysql yum源
-rw-r--r-- 1 root root 1663 Apr 5 2017 mysql-community-source.repo

2、再看看能不能正常工作

[root@VM-8-5-centos MySQL]$ yum list |grep mysql
Repository epel is listed more than once in the configuration
mysql57-community-release.noarch el7-10 installed
akonadi-mysql.x86_64 1.9.2-4.el7 base
anope-mysql.x86_64 2.0.9-3.el7 epel
apr-util-mysql.x86_64 1.5.2-6.el7 base
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.14.2-1.el7 epel

dovecot-mysql.x86_64 1:2.2.36-8.el7 base

 一开始的时候我们安装的 yum,在安装完之后是可以选择删除的,因为每次 yum 操作都会更新一次,耗费时间。

rpm -qa | grep mysql

yum -y remove mysql57-community-release-el7-10.noarch


三、开始安装

1、安装 mysql 服务

安装 MySQL 服务端,需要等待一些时间:yum install -y mysql-community-server

[root@VM-8-5-centos MySQL]$ sudo yum install -y mysql-community-server
[sudo] password for root:
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 #服务器
... #安装了服务和客户端

# 如果报错了,看第16步《常见问题》

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

[root@VM-8-5-centos MySQL]$ ls /etc/my.cnf
/etc/my.cnf
[root@VM-8-5-centos MySQL]$ sudo ls /var/lib/mysql
....

3、启动服务 

启动 MySQL:systemctl start mysqld.service

[root@VM-8-5-centos MySQL]$ systemctl start mysqld.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===

4、查看启动服务

检查是否启动成功:systemctl status mysqld.service

[root@VM-8-5-centos MySQL]$ ps axj |grep mysqld
1 23183 23182 23182 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --
pid-file=/var/run/mysqld/mysqld.pid
13134 23243 23242 13134 pts/0 23242 S+ 1005 0:00 grep --color=auto mysqld
[root@VM-8-5-centos MySQL]$ sudo ls -al /var/lib/mysql
total 122956
drwxr-x--x 5 mysql mysql 4096 Apr 12 11:23 .
drwxr-xr-x. 39 root root 4096 Apr 12 11:11 ..
-rw-r----- 1 mysql mysql 56 Apr 12 11:23 auto.cnf
-rw------- 1 mysql mysql 1680 Apr 12 11:23 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 ca.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 client-cert.pem
-rw------- 1 mysql mysql 1676 Apr 12 11:23 client-key.pem
-rw-r----- 1 mysql mysql 436 Apr 12 11:23 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Apr 12 11:23 ibdata1
-rw-r----- 1 mysql mysql 50331648 Apr 12 11:23 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Apr 12 11:23 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Apr 12 11:23 ibtmp1
drwxr-x--- 2 mysql mysql 4096 Apr 12 11:23 mysql
srwxrwxrwx 1 mysql mysql 0 Apr 12 11:23 mysql.sock
-rw------- 1 mysql mysql 6 Apr 12 11:23 mysql.sock.lock
drwxr-x--- 2 mysql mysql 4096 Apr 12 11:23 performance_schema
-rw------- 1 mysql mysql 1680 Apr 12 11:23 private_key.pem
-rw-r--r-- 1 mysql mysql 452 Apr 12 11:23 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 server-cert.pem
-rw------- 1 mysql mysql 1680 Apr 12 11:23 server-key.pem
drwxr-x--- 2 mysql mysql 12288 Apr 12 11:23 sys

四、开始登陆

1、登陆方法一【不行就下一个】

获取临时密码,MySQL5.7 为 root 用户随机生成了一个密码:

grep 'temporary password' /var/log/mysqld.log

#获取临时root密码
[root@VM-8-5-centos MySQL]$ 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*

#使用临时密码登录
[root@VM-8-5-centos MySQL]$ 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 'yourpassword';
Query OK, 0 rows affected (0.00 sec)

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

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

通过临时密码登录 MySQL,进行修改密码操作:mysql -uroot -p

使用临时密码登录后,不能进行其他的操作,否则会报错,这时候我们进行修改密码操作。

因为 MySQL 的密码规则需要很复杂,我们一般自己设置的不会设置成这样,所以我们全局修改一下:

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

这时候我们就可以自己设置想要的密码了。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';


2、登陆方法二【不行就下一个】

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆一下

3、登陆方法三【应该行了吧】

[root@VM-8-5-centos MySQL]# vim /etc/my.cnf # 打开mysql配置文件

在[mysqld]最后一栏配置(不知道是什么,就放在配置文件最后) 加入:skip-grant-tables 选项,并保存退出

[root@VM-8-5-centos MySQL]# systemctl restart mysqld # 重启mysql服务

# 登陆成功
[root@VM-8-5-centos MySQL]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.44 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>

五、设置配置文件

1、设置开机启动【可以不设】

先退出 mysql 命令行,然后输入以下命令:

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

2、配置 my.cnf

设置 MySQL 的字符集为 UTF-8,令其支持中文:

vim /etc/my.cnf

#配置一下my.conf,主要是数据库客户端和服务器的编码格式

[root@VM-8-5-centos MySQL]$ cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

port=3306
character-set-server=utf8
default-storage-engine=innodb

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8
default-storage-engine=innodb

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables

# 配置完毕,重启mysql即可

重启一下 MySQL,令配置生效:

重启 mysql:service mysqld restart

or

停止 mysql:service mysqld stop

启动 mysql:service mysqld start


3、常见问题:

mysql 已经配置了客户端服务器utf8编码,但是无法输入中文

确保您在终端命令行中可以输入中文
[root@VM-8-5-centos ~]$ env | grep LANG
LANG=en_US.utf8
 安装遇到秘钥过期的问题:
Failing package is: mysql-community-client-5.7.39-1.EL7.86_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

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

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

相关文章

ASP.NET Core 预防开放式重定向攻击

写在前面 为预防钓鱼网站的常用套路,在进行 Web 应用程序的开发时,原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能,需要确保这种类型的重定向操作只能在应用本地完成,或者明确判断…

STM32F407 CAN参数配置 500Kbps

本篇CAN参数适用 芯片型号:STM32F407xx系统时钟:168MHz,CAN挂载总线APB1为42M波 特 率 :500Kpbs引脚使用:TX_PB9,RX_PB8;修改为PA11PA12后,参数不变。 步骤一、打勾开启CAN&#xf…

SpringCloud-搭建Eureka服务模块

在构建分布式微服务体系中,搭建Eureka服务模块是实现服务注册与发现的关键一步。Spring Cloud作为领先的微服务框架,通过Eureka为我们提供了高效的服务治理能力。本文将深入探讨如何使用Spring Cloud,逐步引导读者完成Eureka服务模块的搭建。…

Qt基础-QFrame控件详解

概述 QFrame继承于QWidget,被QLCDNumber、QToolBox、QLabel、QListView等部件继承,是一个拥有矩形框架的基类。 QFrame可以直接创建成一个没有内容的的矩形框架,框架的样式由边框厚度(lineWidth)、框架形状(QFrame::Shape)和阴影样式(QFrame::Shadow)决定,下图是官网给出的…

JAVA毕业设计126—基于Java+Springboot+Vue的二手交易商城管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的二手交易商城管理系统(源代码数据库)126 一、系统介绍 本项目前后端分离,本系统分为管理员、用户两种角色 1、用户: 注册、登录、…

如何有效的开展接口自动化测试(超详细整理)

一、简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中,通过对接口的自动化测试来提高测试效率和测试质量,减少人工测试的工作量和测试成本,并且能够快速发现和修复接口错误&…

事务和连接池配合使用存在的问题

文章目录 前言例子结果源码 前言 今天讨论一个问题,如果全部方法都加上事务,会不会有问题? 前两天看到一个老项目,xml方式的配置,拦截了所有的方法,增加了事务,不能说它的做法有问题&#xff…

〔Part1〕YOLOv5:原理+源码分析(配置文件、网络模块、损失函数、跨网格匹配策略)

1. 前置知识 1.1 YOLO 算法的基本思想 首先通过特征提取网络对输入图像提取特征,得到一定大小的特征图,比如 13x13(相当于416x416 图片大小),然后将输入图像分成 13x13 个 grid cells: YOLOv3/v4&#xf…

WebAssembly002 IDBFS 浏览器文件存储

1.文件系统 文件系统 API官方文档 https://emscripten.org/docs/api_reference/Filesystem-API.htmlJavaScript 通常在 Web 浏览器的沙盒环境中运行,没有 直接访问本地文件系统。Emscripten 模拟了一个文件系统。要访问的文件应预加载或嵌入到虚拟文件系统中。 2.…

从奥迪Quattro到碧然德:揭秘技术品牌成功打造与推广的秘诀

在当前全球化和信息化快速发展的背景下,技术品牌的打造不仅是企业竞争力提升的重要途径,也是企业实现长远发展的基石。通过深入剖析,我们认识到,技术品牌的建设并非一蹴而就的过程,而是需要企业准确把握市场趋势&#…

全球十大优质黄金期货交易平台app软件排行榜(2024版)

对于选择黄金期货交易平台app软件,有几个关键因素需要考虑。首先是app平台的声誉和信誉度;其次是app平台的交易费用和手续费。 第三是app平台的交易品种和交易功能;第四是app平台的安全性和风险控制措施;最后还要考虑app平台的客…

论文阅读-一个用于云计算中自我优化的通用工作负载预测框架

论文标题:A Self-Optimized Generic Workload Prediction Framework for Cloud Computing 概述 准确地预测未来的工作负载,如作业到达率和用户请求率,对于云计算中的资源管理和弹性非常关键。然而,设计一个通用的工作负载预测器…

Redis核心技术与实战【学习笔记】 - 24.Redis 数据分片方案选择:Codis 和 Redis Cluster

简述 Redis 的切片集群使用多个实例保存数据,能很好的应对大数据量的场景。在《4.Redis 切片集群》中,介绍了 Redis 官方提供的切片集群方法 Redis Cluster。本章,再来学习下,在 Redis Cluster 方案正式发布前,业界广…

C#,纽曼-康韦数(Newman Conway Number)的算法与源代码

John Henrry Newman 1 纽曼-康韦数 纽曼-康韦数(Newman Conway Number)序列是生成以下整数序列的序列。 1 1 2 2 3 4 4 4 5 6 7 7… 在数学上,纽曼-康韦数的序列P(n)由递推关系定义: (1) P&#xff08…

【C++历练之路】二叉搜索树的学习应用及其实现

W...Y的主页 😊 代码仓库分享💕 前言🍔: 我们之前学过一些查找关键数据的办法,排序二分查找。但是这种方法的插入的时间复杂的太高,今天我们来学习一个更好的办法来应对数据查找——二叉搜索树。 目录…

深入实战:ElasticSearch的Rest API与迭代器模式在高效查询中的应用

在我们公司,大多数Java开发工程师在项目中都有使用Elasticsearch的经验。通常,他们会通过引入第三方工具包或使用Elasticsearch Client等方式来进行数据查询。然而,当涉及到基于Elasticsearch Rest API的/_sql?formatjson接口时,…

Fink CDC数据同步(一)环境部署

1 背景介绍 Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 Flink CDC 是 Apache Flink 的一组源连接器,基于数据库日志的…

【深度学习】从0完整讲透深度学习第2篇:TensorFlow介绍和基本操作(代码文档已分享)

本系列文章md笔记(已分享)主要讨论深度学习相关知识。可以让大家熟练掌握机器学习基础,如分类、回归(含代码),熟练掌握numpy,pandas,sklearn等框架使用。在算法上,掌握神经网络的数学原理,手动实…

leetcode(滑动窗口)3.无重复字符的最长字串(C++)DAY2

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示…

机器学习笔记-集成学习

机器学习笔记-集成学习 随机森林随机森林bagging和boostingGBDT 随机森林 随机森林 mac上optionenter即可导入包随机森林就是bagging决策树 总结 bagging和boosting 公式和例子 GBDT