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

说明:

  • 安装与卸载中,用户全部切换成为 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 epelcollectd-mysql.x86_64 5.8.1-1.el7 epeldmlite-plugins-mysql.x86_64 1.14.2-1.el7 epeldovecot-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 = 2Mport=3306
character-set-server=utf8
default-storage-engine=innodbdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0character-set-server=utf8
default-storage-engine=innodblog-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_64GPG 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.mzph.cn/news/668803.shtml

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

相关文章

NLP_Bag-Of-Words(词袋模型)

文章目录 词袋模型用词袋模型计算文本相似度1.构建实验语料库2.给句子分词3.创建词汇表4.生成词袋表示5.计算余弦相似度6.可视化余弦相似度 词袋模型小结 词袋模型 词袋模型是一种简单的文本表示方法,也是自然语言处理的一个经典模型。它将文本中的词看作一个个独立…

Java Collection 集合体系的使用

Java Collection 集合体系的使用 package com.zhong.collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet;public class CollectionDemo {public static void main(String[] args) {// ArrayList 有序 可…

C语言贪吃蛇详解

个人简介:双非大二学生 个人博客:Monodye 今日鸡汤:人生就像一盒巧克力,你永远不知道下一块是什么味的 C语言基础刷题:牛客网在线编程_语法篇_基础语法 (nowcoder.com) 一.贪吃蛇游戏背景 贪吃蛇是久负盛名的游戏&…

###C语言程序设计-----C语言学习(9)#函数基础

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 基础知识的学习 1.函数的定义 函数是一个完成特定工作的独立程序模块&…

GPT-1, GPT-2, GPT-3, GPT-3.5, GPT-4论文内容解读

目录 1 ChatGPT概述1.1 what is chatGPT1.2 How does ChatGPT work1.3 The applications of ChatGPT1.3 The limitations of ChatGPT 2 算法原理2.1 GPT-12.1.1 Unsupervised pre-training2.1.2 Supervised fine-tuning2.1.3 语料2.1.4 分析 2.2 GPT-22.3 GPT-32.4 InstructGPT…

如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

面试题:SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?

文章目录 前言jar包和war包的区别一、打包成jar二、打包成war包形式 前言 首先给大家来讲一个我们遇到的一个奇怪的问题: 我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没…

Unable to access SFTP sub-system, operation failed

解决方法: 1. 编辑 /etc/ssh/sshd_config 配置文件 2. 重启SSHD服务 service sshd restart 还有一种特殊情况,也是本文重点要介绍的: 当启用sftp-server后,使用FlashFXP等工具传输文件的时候,仍然失败,…

『运维备忘录』之 Vim 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

MySQL进阶45讲【10】MySQL为什么有时候会选错索引?

1 前言 前面我们介绍过索引,在MySQL中一张表其实是可以支持多个索引的。但是,写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL来确定的。 大家有没有碰到过这种情况,一条本来可以执行得…

vue2 自定义指令 v-highlight 文本高亮显示分享

简单分享一个文本高亮显示的自定义指令,主要分两部分: 1、代码实现:在 main.js 文件中添加一个自定义指令,实现搜索时文本高亮显示,代码如下: const highlightText (el, searchText) > {const textCo…

Linux--- vim详解

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 “学如逆水行舟&#xff0…

大数据企业应用场景分析

目录 一、企业分析 1.1 企业领域维度分析 1.2 技术服务型维度分析 1.3 细分领域维度分析 二、大数据应用场景 2.1 数据分析 2.2 智能推荐 2.3 产品/流程优化 2.4 异常监测 2.5 智能管理 2.6 人工智能和机器学习 三、总结 前言:想讲清楚大数据应用对企业…

响应式开发如何设置断点,小屏幕界面该如何显示(有动图)

Hi,我是贝格前端工场,本期分享响应式开发,如何设置屏幕断点,pc页面布局到了移动端之后该如何布局的问题,微软也提供了设置屏幕断点的动图演示,非常直观。 一、什么是响应式开发,为何要设置屏幕断…

常用存储器

目录 一、存储器的种类 二、易失性存储器(RAM) 1. DRAM (1)SDRAM (2)DDR SDRAM 2. SRAM 3. DRAM与SRAM的应用场合 三、非易失性存储器 1. ROM (1)MASK ROM (2…

YoloV8改进策略:Neck改进:HAM混合注意力机制改进YoloV8|多种改进,多种姿势涨点|代码注释详解

摘要 HAM通过快速一维卷积来缓解通道注意机制的负担,并引入通道分离技术自适应强调重要特征。HAM作为通用模块,在CIFAR-10、CIFAR-100和STL-10数据集上实现了SOTA级别的分类性能。 论文链接:https://www.sciencedirect.com/science/article/abs/pii/S0031320322002667?vi…

2024年【天津市安全员B证】考试报名及天津市安全员B证最新解析

题库来源:安全生产模拟考试一点通公众号小程序 天津市安全员B证考试报名根据新天津市安全员B证考试大纲要求,安全生产模拟考试一点通将天津市安全员B证模拟考试试题进行汇编,组成一套天津市安全员B证全真模拟考试试题,学员可通过…

【产品升级】SmartPipe升级到版本2.0

在近一个月的攻关和测试下,SmartPipe软件轴线自动识别算法的性能大幅提升,鲁棒性和稳定性进一步增强。近一年来客户累计反馈的多种复杂管路(包括带有支管管路、带有压瘪段管路、推弯管、装配管、带有复杂孔洞管路等)现在均能够正确…

PySpark(四)PySpark SQL、Catalyst优化器、Spark SQL的执行流程

目录 PySpark SQL 基础 SparkSession对象 DataFrame入门 DataFrame构建 DataFrame代码风格 DSL SQL SparkSQL Shuffle 分区数目 DataFrame数据写出 Spark UDF Catalyst优化器 Spark SQL的执行流程 PySpark SQL 基础 PySpark SQL与Hive的异同 Hive和Spark 均是:“分…

数据挖掘实战-基于决策树算法构建北京市空气质量预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…