MySQL安装手册

news2024/11/25 16:27:32

文章目录

  • 一、系统环境
  • 二、检查是否已安装
  • 三、安装步骤
    • 1、yum安装
      • 1.1、更新yum
      • 1.2、使用wget下载mysql yum源:
      • 1.3、添加 mysql yum 源:
      • 1.4、安装 yum 工具 yum-utils :
      • 1.5、查看可用的 mysql :
      • 1.6、查看所有的 mysql 版本
      • 1.7、使用指定版本MySQL
      • 1.8、查看当前启用的MySQL版本
      • 1.9、安装MySQL
    • 2、离线安装
      • 2.1、下载文件
      • 2.2、安装
    • 3、配置、启动
      • 3.1、启动MySQL
      • 3.2、查看MySQL服务状态
      • 3.3、初始化MySQL
      • 3.4、设置MySQL密码策略
        • 3.4.1、修改密码验证强度
        • 3.4.2、修改密码长度
        • 3.4.3、此时密码已经可以设置简单密码了
      • 3.5、设置MySQL远程连接,在sql里面设置
        • 3.5.1、刷新权限
      • 3.6、设置 MySQL开机启动,在linux里面设置
      • 3.7、配置防火墙
      • 3.8、测试链接
  • 四、错误排查
    • 1、连接报错
    • 2、密码过期
    • 3、设置任意IP连接
    • 4、修改密码
    • 5、修改忽略大小写
    • 6、修改字符集
    • 7、groupBy有错误
      • 7.1、原因
      • 7.2、解决办法

一、系统环境

系统:CentOS7
MySQL版本:MySQL 5.7

二、检查是否已安装

通过查看文件安装路径来判断是否安装mysql。

在终端输入:

whereis mysql

回车,如果你安装好了mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)
在这里插入图片描述
说明:/usr/lib64/mysql,是指:MySQL的安装路径。

如果你是用rpm安装, 检查一下RPM PACKAGE:

rpm -qa | grep -i mysql

检查MySQL service:

service mysql status

三、安装步骤

1、yum安装

1.1、更新yum

yum update -y

这里会更新好多内容,需要等待一会。

1.2、使用wget下载mysql yum源:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

如果提示wget命令未找到,则可使用命令,安装wget

sudo yum install -y wget

1.3、添加 mysql yum 源:

sudo yum localinstall -y mysql57-community-release-el7-7.noarch.rpm -y

1.4、安装 yum 工具 yum-utils :

sudo yum install -y yum-utils

1.5、查看可用的 mysql :

yum repolist enabled | grep "mysql.*-community.*"

(img-bCfyco5R-1676362439480)(/uploads/service_deploy/images/m_223eaf83a9e8ebb6842846c5fd28ef74_r.png)]

1.6、查看所有的 mysql 版本

yum repolist all | grep mysql

(img-88cOOY0D-1676362439480)(/uploads/service_deploy/images/m_1e1c6888ae75dc78c0845e62763cf2cc_r.png)]

1.7、使用指定版本MySQL

假如我想使用MySQL5.7,那么我就需要先关闭MySQL8.0

关闭MySQL8.0

sudo yum-config-manager --disable mysql80-community

开启MySQL5.7

sudo yum-config-manager --enable mysql57-community

1.8、查看当前启用的MySQL版本

yum repolist enabled | grep mysql

(img-Noi824Pf-1676362439481)(/uploads/service_deploy/images/m_d484eb41c5d078ca11fe3871239f200c_r.png)]

1.9、安装MySQL

sudo yum install -y mysql-community-server

期间等待很长时间,等待安装完成。,如果下载速度只有几十kb,请更换网络,或者使用手机热点进行下载。更换热点后,再次执行此命令即可。

(img-vs5nkPnX-1676362439481)(/uploads/service_deploy/images/m_58ca982fb0bf70745efe94f62fd26935_r.png)]
在这里插入图片描述

有些同学会出现此问题

在这里插入图片描述

执行此代码块。

yum module disable mysql
sudo yum install -y mysql-community-server

2、离线安装

2.1、下载文件

https://dev.mysql.com/downloads/mysql/

在这里插入图片描述

解压
tar xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar

2.2、安装

rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

3、配置、启动

3.1、启动MySQL

sudo service mysqld start
# 或
systemctl start mysqld

3.2、查看MySQL服务状态

sudo service mysqld status
# 或
systemctl status mysqld

在这里插入图片描述

3.3、初始化MySQL

查看初始化密码:

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

使用初始密码进行登录:

mysql -u root -p

在这里插入图片描述

初始化密码

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

3.4、设置MySQL密码策略

查询MySQL初始的密码策略

 SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

3.4.1、修改密码验证强度

set global validate_password_policy=LOW; 

3.4.2、修改密码长度

set global validate_password_length=6;

3.4.3、此时密码已经可以设置简单密码了

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

注意,密码长度最低为4位,设置的密码长度小于4时,默认改成4.

3.5、设置MySQL远程连接,在sql里面设置

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

这里的密码是你自己的设置的密码

3.5.1、刷新权限

FLUSH PRIVILEGES

3.6、设置 MySQL开机启动,在linux里面设置

不在sql里面配置,在Linux命令行执行。!!!不是在sql里面

systemctl enable mysqld

(这只是提示目录所在)MySQL的配置文件目录:

/etc/my.cnf

3.7、配置防火墙

设置3306端口开放

firewall-cmd --zone=public --add-port=3306/tcp --permanent

看到success表示添加成功

重载防火墙规则
firewall-cmd --reload

在这里插入图片描述

验证3306是否开放成功

firewall-cmd --zone=public --query-port=3306/tcp

3.8、测试链接

在这里插入图片描述

四、错误排查

1、连接报错

Starting MySQL.2021-07-27T06:13:48.399826Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

解决办法:依次执行下面语句

mkdir  /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql.mysql /var/log/mariadb/

2、密码过期

 java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.

解决办法:依次执行下面语句

use mysql;
select host,user,password_expired from user;
update user set password_expired='N' where user='root';
flush privileges;

3、设置任意IP连接

use mysql;
select user,host from user;
update user set host='%' where host='localhost';

4、修改密码

use mysql;
update user set authentication_string=password("你的新密码") where user="root";

5、修改忽略大小写

查找配置文件路径

locate my.cnf

[mysqld]
lower_case_table_names=1

说明:

lower_case_table_names=1(不区分大小写)

lower_case_table_names=0(区分大小写)

6、修改字符集

[mysqld]
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:

修改端口后无法启动,参考:centos7 修改mysql5.7默认端口后启动异常

7、groupBy有错误

在这里插入图片描述

使用group by报错

[Err] 3065 - Expression #1 of ORDER BY clause is not in SELECT list, references column 'bwss_jinniu_dev.oa.create_time' which is not in SELECT list; this is incompatible with DISTINCT

7.1、原因

mysql5.7.34及以上版本将sql_mode的ONLY_FULL_GROUP_BY模式默认设置为打开状态,会导致一些错误:

  • 1、我们使用GROUP BY查询时,出现在SELECT字段后面的只能是GROUP BY后面的分组字段,或使用聚合函数包裹着的字段,否则会报错如下信息:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database.table.
  column' which is not functionally dependent on columns in GROUP BY clause;
   this is incompatible with sql_mode=only_full_group_by
  • 2、当使用ORDER BY查询时,不能使用SELECT DISTINCT去重查询。否则会报错如下信息
   Expression #1 of ORDER BY clause is not in SELECT list, 
   references column 'database.table.column' which is not in SELECT list; 
   this is incompatible with DISTINCT

查询验证:

select version(); //查询版本
select @@global.sql_mode   //查询sql_mode

7.2、解决办法

解决方法:
去除ONLY_FULL_GROUP_BY

  • 1、通过命令关闭:
set global sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

但该方法在重启Mysql服务后会失效,重启服务后会失效

  • 2、通过修改mysql的配置文件关闭ONLY_FULL_GROUP_BY SQL模式
sudo vim /etc/mysql/conf.d/mysql.cnf

文件底部追加:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  • 3、保存并重启mysql
sudo service mysql restart

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

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

相关文章

Netty源码解读-server端(一)

一、回顾NIO中的server 下面是我在学习nio时,写的selctor版本的服务端,具体代码如下: public static void nioSelectorServer() throws Exception{//1。创建SelectorSelector selector Selector.open();ServerSocketChannel ssc ServerSo…

c++ bind 函数讲解

1.bind 函数的使用详解 可以将bind函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来“适应”原对象的参数列表。 调用bind的一般形式:auto newCallable bind(callable,arg_list); 其中,newCallab…

从零实现深度学习框架——再探多层双向RNN的实现

来源:投稿 作者:175 编辑:学姐 往期内容: 从零实现深度学习框架1:RNN从理论到实战(理论篇) 从零实现深度学习框架2:RNN从理论到实战(实战篇) 从零实现深度…

【Vue3】首页主体-面板组件封装

首页主体-面板组件封装 新鲜好物、人气推荐俩个模块的布局结构上非常类似,我们可以抽离出一个通用的面板组件来进行复用 目标:封装一个通用的面板组件 思路分析 图中标出的四个部分都是可能会发生变化的,需要我们定义为可配置主标题和副标题…

您可以使用 21 个很棒的搜索引擎来代替 Google

在过去的 20 年里,Google 一直是大多数人用于日常搜索、产品研究和了解最新消息的搜索引擎。凭借其长期的统治地位和大部分市场份额,很难说任何搜索引擎都能提供比谷歌更好的结果。由于这种市场主导地位,谷歌也一直是SEO和营销专业人士关注的…

随笔-老子不想牺牲了

18年来到这个项目组,当时只有8个人,包括经常不在的架构师和经理。当时的工位在西区1栋A座,办公桌很宽敞。随着项目的发展,入职的人越来越多,项目的工位也是几经搬迁。基本上每次搬迁时,我的工位都是挑剩下的…

Allegro如何实现同一个屏幕界面分屏显示操作指导

Allegro如何实现同一个屏幕界面分屏显示操作指导 在做PCB设计的时候,会需要分屏显示,比如一边是放大的视图,另外一边是缩小的视图,Allegro支持同一个屏幕界面下进行分屏显示,如下图 而且会实时同步起来 如何分屏,具体操作如下 点击View

(python)降低图像质量

降低数字图像质量(python实现) 目录 降低数字图像质量(python实现)一、分别采用五种不同的方式来降低图像的质量1. 给图像添加椒盐噪声2. 给图像添加高斯噪声3. 对图像进行高斯模糊4. 对图像进行运动模糊5. 对图像进行插值下采样二、实现代码一、分别采用五种不同的方式来降…

操作系统(六)磁盘调度算法与优化

操作系统(六)磁盘调度算法与优化 一、磁盘调度算法 时间指标 寻找时间:在读/写数据前,将磁头移动到指定磁道需要的时间延迟时间:通过旋转盘面,将磁头定位到目标扇区所需的时间传输时间:从磁盘…

Leetcode.1124 表现良好的最长时间段

题目链接 Leetcode.1124 表现良好的最长时间段 Rating : 1908 题目描述 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格…

argocd 调研

Argo CD 是基于 Kubernetes 的声明式, GitOps 持续交付工具。GitOps AgentGitOps IaC Git CI/CD,即基于 IaC 的版本化 CI/CD。它的核心是使用 Git 仓库来管理基础设施和应用的配置,并且以 Git 仓库作为基础设施和应用的单一事实来源。Git …

Windows 11 办公实用效率小技巧总结(持续更新)

Win11 办公实用效率小技巧总结:1. 虚拟桌面2. 拖拽任务窗口转移到不同虚拟桌面3. 自定义多网页名称4. Focus专注组件5. 多选项分屏6. 抖一抖最小化1. 虚拟桌面 虽然过去只有 Linux, Mac 系统中有虚拟桌面,而且在win10 中也实现了这个功能,但…

Springboot835学生成绩分析系统--java

开发语言:Java 框架:Springboot 技术:JSP JDK版本:JDK1.8 目 录 1 绪 论 5 1.1课题背景 5 1.2 课题研究的意义 5 1.3 系统实现的功能 5 1.4 课题研究现状 5 2系统相关技术 7 2.1 Java技术 7 2.2 B/S架构 7 2.3 MySQL 介绍 7 2.4My…

zabbix邮件报警配置

在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。 邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件。 一、开启发件服务器SMTP功能 这里发送邮件的…

初始C++(四):内联函数

文章目录一.内联函数概念二.内联函数用法三.内联函数的特性四.内联函数和宏一.内联函数概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 二.内联函…

SpringBoot环境-MySQL主从复制,读写分离的实现

目录 概述 环境 主从复制 读写分离 概述 记录在MySQL数据库中主从复制以及SpringBoot环境操作MySQL数据库读写分离的实现步骤。 背景 :因为我们在对数据库进行操作时,如果读写操作都由一台数据库承担的话压力会比较大,为了减轻数据库压力&…

【Linux】rsyslog日志服务(配置,测试、日志转储)

一、rsyslog简介 Rsyslog的全称是 rocket-fast system for log ,可用于接受来自各种来源的输入,转换 它们,并将结果输出到不同的目的地。 它提供了高性能、强大的安全功能和模块化设计。虽然rsyslog最初是一个常规的系 统日志,但它已经发展成…

H5APP开发封装流程

1.利用H5写想要的功能 2.打包APP 3.手机安装 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-sca…

【基础】Flink -- Time and Window

Flink -- Time and WindowFlink 时间语义水位线 Watermark水位线的概念有序流中的水位线乱序流中的水位线水位线的特性水位线的基本使用水位线生成策略内置水位线生成器自定义水位线策略在自定义数据源中发送水位线窗口 Window窗口的基本概述窗口的基本概念窗口的分类窗口的 AP…

ccc-Backpropagation-李宏毅(7)

文章目录NotationBackpropagationForward passBackward passSummaryNotation 神经网络求解最优化Loss function时参数非常多&#xff0c;反向传播使用链式求导的方式提升计算梯度向量时的效率&#xff0c;链式法则如下&#xff1a; Backpropagation 损失函数计算为所有样本…