mysql linux redhat_RedHat Linux 6 下 MySQL 8.0.11安装配置

2023-11-07

我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bundle即可--MySQL-8.0.11-1.el6.x86_64.rpm-bundle.tar。

目前MySQL8.0.11社区版提供了多种多样的安装方式,但是并未发现针对Linux Generic安装包包含的mysql_secure_installation的安装说明。

MySQL官网地址:https://dev.mysql.com/downloads/mysql/

因此这里使用推荐的RPM安装:

一、mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar解压后有如下7个文件:

-rw-r--r-- 1 root root  28987588 Apr  9 01:06 mysql-community-client-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root    672184 Apr  9 01:06 mysql-community-common-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  4443296 Apr  9 01:06 mysql-community-devel-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  2579460 Apr  9 01:06 mysql-community-libs-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  1902676 Apr  9 01:06 mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 395918848 Apr  9 01:07 mysql-community-server-8.0.11-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  49092596 Apr  9 01:07 mysql-community-test-8.0.11-1.el6.x86_64.rpm

然后创建mysql用户:

useradd mysql

passwd mysql

二、安装顺序为:(建议装之前先把之前的mysql相关包全部卸载,rpm -e --nodeps 即可)

[root@Python ~]# rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-common-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-common ########################################### [100%]

[root@python ~]# rpm -ivh mysql-community-libs-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-libs-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-libs  ########################################### [100%]

[root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

file /usr/lib64/mysql/libmysqlclient.so.16.0.0 from install of mysql-community-libs-compat-8.0.11-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-8.0.1.el6_8.x86_64

file /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 from install of mysql-community-libs-compat-8.0.11-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-8.0.1.el6_8.x86_64

[root@python ~]# rpm -e --nodeps mysql-libs-5.1.73-8.0.1.el6_8.x86_64

[root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-libs-co########################################### [100%]

[root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-server-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed dependencies:

mysql-community-client(x86-64) >= 8.0.0 is needed by mysql-community-server-8.0.11-1.el6.x86_64

[root@python ~]# rpm -ivh mysql-community-client-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-client-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-client ########################################### [100%]

[root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-server-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-server ########################################### [100%]

[root@python ~]# rpm -ivh mysql-community-devel-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-devel-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:mysql-community-devel  ########################################### [100%]

^[[A[root@python ~]# rpm -ivh mysql-community-test-8.0.11-1.el6.x86_64.rpm

warning: mysql-community-test-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed dependencies:

perl(JSON) is needed by mysql-community-test-8.0.11-1.el6.x86_64

--懒的去装perl了,因此测试套件就不装了。

三、安装完毕后相关信息如下:

[root@python ~]# mysql -V

mysql  Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

[root@python ~]# ll /etc/init.d/mysqld

-rwxr-xr-x 1 root root 7166 Apr  8 16:21 /etc/init.d/mysqld

[root@python ~]# ll /etc/my.cnf --配置文件位置

-rw-r--r-- 1 root root 1188 Apr  8 16:21 /etc/my.cnf

默认的datadir是在/var/lib/mysql/,可以通过修改my.cnf修改,启动命令如下:

[root@python ~]# service mysqld start

Initializing MySQL database:                              [  OK  ]

Starting mysqld:                                          [  OK  ]

四、发现没密码不能登录,于是添加skip-grant-tables到my.cnf,重启进去重置密码

mysql> alter user root@'localhost' identified by 'mysql';

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

mysql> exit

Bye

居然不能改。。。于是:

mysql> delete from mysql.user where user='root';

Query OK, 1 row affected (0.10 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> create user root@'localhost' identified by 'mysql';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

还是不能改,查看密码复杂度要求:

mysql> show variables like '%pass%';

+----------------------------------------------+-----------------+

| Variable_name                                | Value          |

+----------------------------------------------+-----------------+

| caching_sha2_password_auto_generate_rsa_keys | ON              |

| caching_sha2_password_private_key_path      | private_key.pem |

| caching_sha2_password_public_key_path        | public_key.pem  |

| default_password_lifetime                    | 0              |

| disconnect_on_expired_password              | ON              |

| mysql_native_password_proxy_users            | OFF            |

| password_history                            | 0              |

| password_reuse_interval                      | 0              |

| report_password                              |                |

| sha256_password_auto_generate_rsa_keys      | ON              |

| sha256_password_private_key_path            | private_key.pem |

| sha256_password_proxy_users                  | OFF            |

| sha256_password_public_key_path              | public_key.pem  |

| validate_password.check_user_name            | ON              |

| validate_password.dictionary_file            |                |

| validate_password.length                    | 8              |

| validate_password.mixed_case_count          | 1              |

| validate_password.number_count              | 1              |

| validate_password.policy                    | MEDIUM          |

| validate_password.special_char_count        | 1              |

+----------------------------------------------+-----------------+

查看官网https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html#sysvar_validate_password.policy

发现此值有3个,如下所示:

bb4d0e9058d01fb863e0e360ed0e7b7d.png

于是设置为0,然后将validate_password.length设置为4,表示最少需要4字符。之所以设置为4是因为这个参数的值不能小于如下公式的计算结果:

validate_password.number_count

+ validate_password.special_char_count

+ (2 * validate_password.mixed_case_count)

于是继续创建用户,MySQL8.0取消了直接grant创建用户的语法,只能先create user再grant,因此创建root如下:

mysql> create user root@'localhost' identified by 'mysql';

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> create user root@'localhost' identified by 'mysql';

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

尼玛...什么玩意儿?

于是去逛了一圈stackoverflow,都说这是一个BUG,于是操作如下:

mysql> drop user root@'localhost';  --是的没错,虽然没有root@'localhost'用户,但你还是要删一遍。

Query OK, 0 rows affected (0.05 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

mysql> create user root@'localhost' identified by 'mysql';

Query OK, 0 rows affected (0.03 sec)

mysql> grant all on *.* to root@'localhost' with grant option;

Query OK, 0 rows affected (0.03 sec)

终于改完密码了...去掉参数文件的skip-grant-tables参数,service mysqld restart重启服务。

五、终于设置好密码了,建一个测试用户leo,然后尝试远程连接下吧:

$ mysql -uleo -pmysql -h192.168.1.193

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

我这5.7的mysql工具都连不上,这就尴尬了,查看认证相关参数:

mysql> show variables like '%auth%';

+-------------------------------+-----------------------+

| Variable_name                | Value                |

+-------------------------------+-----------------------+

| default_authentication_plugin | caching_sha2_password |

+-------------------------------+-----------------------+

1 row in set (0.02 sec)

查看官网发现此值的取值如下:

522d4da7e6d27d422a01af1df66961f7.png

官网还说此值影响create user不显式指定auth plugin时密码的默认加密算法,卧槽...那岂不是说我之前创建的leo用户使用的是默认的caching_sha2_password认证,查看一下:

mysql> select user,host,plugin from mysql.user;

+------------------+-----------+-----------------------+

| user            | host      | plugin                |

+------------------+-----------+-----------------------+

| leo              | %        | caching_sha2_password |

| mysql.infoschema | localhost | mysql_native_password |

| mysql.session    | localhost | mysql_native_password |

| mysql.sys        | localhost | mysql_native_password |

| root            | localhost | caching_sha2_password |

+------------------+-----------+-----------------------+

完了,全TM完了......

显然不能直接update plugin,因为这可能导致加密的密码无法被正确解密,你所有的密码都会变异,因此除root@'localhost'外全部删掉重建。

首先需要在my.cnf里添加:default_authentication_plugin=mysql_native_password,然后service mysqld restart重启服务:

mysql> drop user leo;

Query OK, 0 rows affected (0.10 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> create user leo identified by 'mysql';

Query OK, 0 rows affected (0.02 sec)

mysql> grant all on *.* to leo;

Query OK, 0 rows affected (0.08 sec)

$mysql -V

mysql  Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using  EditLine wrapper

$ mysql -uleo -pmysql -h192.168.1.193

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 16

Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

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>

至此远程连接正常。

0b1331709591d260c1c78e86d0c51c18.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql linux redhat_RedHat Linux 6 下 MySQL 8.0.11安装配置 的相关文章

  • Vue基础知识总结 7:插槽slot与vue导入导出

    作者简介 哪吒 CSDN2021博客之星亚军 新星计划导师 博客专家 哪吒多年工作总结 Java学习路线总结 搬砖工逆袭Java架构师 关注公众号 哪吒编程 回复1024 获取Java学习路线思维导图 大厂面试真题 加入万粉计划交流群 一起
  • 基于matlab实现信号的线性卷积与循环卷积

    系列文章目录 数字信号处理 DSP Digital Signal Process 是电子通信领域非常重要的研究方向 博主汇总了数字信号处理 DSP 中常用的经典案例分析 主要基于算法分析 MATLAB程序实现 信号图像显示 对数字信号处理的
  • python flask框架下登录注册界面_基于Flask框架如何实现用户登录功能

    form hidden tag form username class form control input lg placeholder 用户名 form password class form control input lg plac
  • dubbo解析-@EnableDubbo注解详解

    本文基于dubbo 2 7 5版本代码 文章目录 一 EnableDubbo注解功能 二 详细介绍注解引入的三个类的作用 dubbo必须配置注解 EnableDubbo 一 EnableDubbo注解功能 EnableDubbo整合了三个注
  • MetaFormer/PoolFormer学习笔记及代码

    MetaFormer PoolFormer学习笔记及代码 MetaFormer Is Actually What Y ou Need for Vision code https github com sail sg poolformer A
  • RN仿微信朋友圈图片拖拽删除

    目录 前言 初始时 渲染时 开始拖拽 拖拽中 拖拽结束 拖拽删除 参考链接 前言 之前负责的一个需求 让在RN端做仿微信朋友圈的图片删除和排序 由于经验和时间限制 就跟PM协商改为点击删除 由此欠下一个技术栈 今天是来还债的 本文基于tra
  • STM32 电机教程 16 - PMSM电机磁场定向控制原理

    前言 磁场定向控制又称矢量控制 FOC 本质上为控制定子电流的幅度和相位 使之产生的磁场和转子的磁场正交 以产生最大的扭矩 1 PMSM 的磁场定向控制 磁场定向控制 Field Oriented Control FOC 表示这样一种方法
  • 计算机网络应用层之HTTP协议

    一 什么是HTTP协议 HTTP是HyperText Transfer Protocol即超文本传输协议的缩写 是Web应用层协议之一 HTTP协议由两部分程序实现 一个客户机程序和一个服务器程序 它们运行在不同的端系统中 通过交换HTTP
  • Java SPI 机制

    文章首发于个人博客 欢迎访问关注 https www lin2j tech 什么是 SPI 机制 SPI Service Provider Interface 是 Java 内置的一种服务提供发现机制 将功能的实现交给第三方 用来拓展和替换
  • Python 中的 retrying 库

    文章目录 retrying 模块 一 简介 二 使用方法 1 无参数 2 有参数 2 1 stop max attempt number 2 2 stop max delay 2 3 wait fixed 2 4 wait random m
  • 2018.6.20 Java考试试题总结(Java语言基础与面向对象编程)最新版

    Java考试试题总结 一 单选题 每题1分 50 50分 1 java程序的执行过程中用到一套JDK工具 其中javac exe指 B A java语言解释器 B java字节码编译器 C java文档生成器 D java类分解器 2 在J
  • 华为OD机试 - 连续出牌数量(Java)

    题目描述 有这么一款单人卡牌游戏 牌面由颜色和数字组成 颜色为红 黄 蓝 绿中的一种 数字为0 9中的一个 游戏开始时玩家从手牌中选取一张卡牌打出 接下来如果玩家手中有和他上一次打出的手牌颜色或者数字相同的手牌 他可以继续将该手牌打出 直至
  • 测试圈的网红工具:Jmeter到底难在哪里?!

    雨果的公司最近推出了一款在线购物应用 吸引了大量用户 然而随着用户数量的增加 应用的性能开始出现问题 用户抱怨说购物过程中页面加载缓慢 甚至有时候无法完成订单 小欧作为负责人员迫切需要找到解决方案 在学习JMeter之前 小欧只能通过手动测
  • 【画方】画方网络准入管理系统

    一 DHCP Server与DHCP准入方式 NAM内置了一个DHCP服务器 它与其它模块配合来提供DHCP准入控制功能 这个服务器与标准DHCP服务器有很大区别 它不仅利用DHCP协议实现了IP地址的中心下发功能 还利用操作系统内置的DH
  • 神经网络算法基本原理及其实现

    目录 背景知识 人工神经元模型 激活函数 网络结构 工作状态 学习方式 BP算法原理 算法实现 MATLAB 背景知识 在我们人体内的神经元的基本结构 相信大家并不陌生 看完下面这张图 相信大家都能懂 什么是人工神经网络 人工神经网络是具有
  • 《软件调试艺术》读后感七

    1 线程调试 对线程的调试用的最多的可能是thread命令了 查看程序中有多少线程使用Infothreads 进入到某个线程的内部使用thread count 这样就可以进入到count线程的内部 线程调试中用的最多的还有就是bt命令 这个
  • Python 数据分析1:三种工具实现连接、读取MySQL数据库并处理MySQL数据为DataFrame

    文章目录 一 前言 二 通过 pymysql 获取 MySQL 数据 2 1 连接数据库 2 2 读取数据 2 3 处理数据 三 通过 mysqlclient 获取 MySQL 数据 四 通过 SQLAlchemy 获取 MySQL 数据
  • protobuf-IOS简单总结(编译、环境搭建)

    什么是protobuf Protocol Buffers are a way of encoding structured data in an efficient yet extensible format Google uses Pro
  • 用Vue的三种方法实现加减乘除运算

    js插件 vue js 教程 首先在工具内引入vue js 然后在body里面创建一个div并设置id 我这里给id命名为 app div 在id命名为 app 的div内使用input标签和select标签来设置运算框 第一种comput

随机推荐

  • 多个接口请求出现报错,提示会连续出现多个,如何只弹出一个提示

    场景 如果出现网络问题或者token失效 刷新页面 如果有多个接口请求就会出现报错 那么提示就会连续弹出几个 如图 使用的是vue element ui 解决方法 重写一了个message import Message from eleme
  • 爬虫实例九 豆瓣电影详情信息

    from bs4 import BeautifulSoup 网页解析 获取数据 import re 正则提取 import urllib request urllib error 制定url 获取网页数据 import xlwt 进行exc
  • TensorFlow的GPU版本安装

    建议可以使用anaconda创建专门的虚拟环境来安装TensorFlow 因为如果你之后继续在此环境下安装如tensorflow federated 联邦机器学习 的话就会出问题 1 版本准备 注意四个版本是一一对应的 可能改变任何一个的版
  • 程序猿面试必背——Java资料整理

    程序猿面试必背 适用于 Java开发工程师 后台开发工程师 软件开发工程师 写在前面 秋招已结束 以下是对我帮助比较大的资料 分享一下 可能涉及到的知识点 编程语言 Java 基础知识 计算机网络 操作系统 linux 数据库 关系型如my
  • git bash 风格调整

    在用户目录下有一个 C Users minttyrc文件 用文本方式打开文件 将系统配置加入进去即可全局修改git bash的风格 当然也可以在git bash上右击选择options进行修改 个人配置内容如下 参考 Font Consol
  • 创建基于vite的vue项目

    目录 一 环境 安装Node js 安装yarn工具 二 创建项目 三 项目目录梳理 项目初始目录结构 项目加载过程 四 集成UI组件库vant 配置按需加载Vant 使用组件 引入函数组件的样式 五 集成UI组件库NutUI 配置按需加载
  • github 如何

    链接 https www zhihu com question 20393785 answer 105370502 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 原谅我只会用命令行 还是给一个使用命令行的方
  • 详解vant组件应用于Vue2

    目录 1 安装 1 1 npm安装 1 2 CDN安装 1 3 利用脚手架安装 1 3 1 安装脚手架 没有安装脚手架的 1 3 2 利用脚手架创建程序 1 3 3 使用vue ui进行依赖的安装 1 3 4 依赖安装 2 引入组件 2 1
  • express框架的基本使用

    1 引入express const express require express 2 创建应用对象 const app express 3 创建路由规则 request请求报文的封装 response响应报文的封装 app get req
  • C++的float类型数比较问题

    2020 8 17更新了一下 看到了两个float数比较的 不是0值 也加进了最末尾 相等比较 之前刷题做到一道题 看到题解很奇怪 计算一个数字的立方根 getCubeRoot double input 题解采用了二分法 但比较时并不是用直
  • 将多个HEX文件合并成一个HEX文件通过KEIL进行烧录

    首先这多个HEX文件自己已经偏移好了 hex文件已经记录了偏移的地址信息 用记事本打开第一个hex文件 test1 hex 020000040000FA 文件头记录 1000000018F09FE518F09FE518F09FE518F09
  • Docker安装以及运行第一个HelloWorld

    在安装Docker之前我们先来了解一下什么是Docker 观察Docker图标 其实很形象的解释了什么是Docker 在没有使用集装箱的情况下 我们需要考虑不同形状 尺寸的货物怎么安放 货物与货物之间是否能堆叠 这无疑是很繁琐的事情 现在有
  • 005 快排qsort库函数的用法——“C”

    文章目录 前言 一 什么是qsort快排函数 qsort的参数分析 二 使用步骤 前言 Reference C Reference cplusplus com 可在此网站查阅相关函数信息 提示 以下是本篇文章正文内容 下面案例可供参考 一
  • Reachability(判断网络是否连接)

    类似于一个网络状况的探针 NSNotificationCenter defaultCenter addObserver self selector selector reachabilityChanged name kReachabilit
  • 【ROS】学习之日志(log)消息

    参考 ROS学习之日志消息 ROS中的日志 log 消息 ROS日志级别控制 ROS日志 log 系统 通过显示进程的运行状态是好的习惯 但需要确定这样做不会影响到软件的运行效率和输出的清晰度 ROS 日志 log 系统的功能是让程序生成一
  • 傻瓜式阿里云部署java web项目步骤

    写在前面 本傻瓜式步骤适用于阿里云服务器是Windows Server 2008操作系统 一 阿里云操作步骤 1 首先提前准备好阿里云账号和密码 访问地址 阿里云 2 登录后进入首页 点击云服务器ECS 如图 3 进入云服务器ECS 点击实
  • java比较器Comparable接口和Comaprator接口

    java的比较器有两类 分别是Comparable接口和Comparator接口 在为对象数组进行排序时 比较器的作用非常明显 首先来讲解Comparable接口 让需要进行排序的对象实现Comparable接口 重写其中的compareT
  • MySQL - 普通索引

    创建和查看索引 创建索引是指在某个表的一列或多列上建立一个索引 以便提高对表的访问速度 创建索引有3种方式 分别是创建表的时候创建索引 在已经存在的表上创建索引和使用ALTER TABLE语句来创建索引 本节将根据具体的索引分类详细的讲解这
  • (最简单)使用 reset-css 初始化浏览器css样式

    目录 背景 实现 步骤一 步骤二 背景 在我们的项目初始化搭建过程中会遇到这种情况 需要我们自己清除css默认样式 但是我们不可能一周都有那个清除默认css样式的文件 实现 步骤一 在终端使用 npm 引用 reset css npm i
  • mysql linux redhat_RedHat Linux 6 下 MySQL 8.0.11安装配置

    我这里是RHEL6 5的系统 因此选择RedHat 6 x86 64bit操作系统 下载第一个RPM Bundle即可 MySQL 8 0 11 1 el6 x86 64 rpm bundle tar 目前MySQL8 0 11社区版提供了