Centos7安装mysql8.0教程

2023-11-11

文章目录

一、卸载MySQL

1、关闭MySQL

service mysqld stop

2、查看安装的MySQL

rpm -qa|grep -i mysql

在这里插入图片描述

3、卸载安装的MySQL

rpm -ev mysql-community-client-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-server-8.0.11-1.el7.x86_64  --nodeps
rpm -ev mysql-community-libs-8.0.11-1.el7.x86_64 --nodeps

4、删除MySQL相关目录

find / -name mysql
rm -rf /var/lib/mysql/
rm -rf /usr/lib64/mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /etc/selinux/targeted/tmp/modules/100/mysql

在这里插入图片描述

5、删除my.cnf

rm -rf /etc/my.cnf

6、删除MySQL的默认密码

rm -rf /root/.mysql_sercret

7、检查卸载情况

rpm -qa|grep -i mysql

8、删除mariadb 的安装包

rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 卸载mariadb

二、在线安装

1、配置Mysql 8.0安装源

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2、安装Mysql 8.0

sudo yum --enablerepo=mysql80-community install mysql-community-server

提示下载插件选择:y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看到(完毕)表示已经安装完了。

三、本地安装

1、下载MySQL安装包到本地

下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

2、在/usr/local目录下新建目录MySQL

cd /usr/local
mkdir mysql
cd mysql

3、上传安装包

1、点击【传输】->点击【ZmoDem上传列表】->选择安装包点击确定->【开始ZmoDem上传】
2、或者:在/usr/local/mysql目录下使用rz -be命令上传mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述

4、安装MySQL程序包

tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
得到文件如下图:

在这里插入图片描述

2、 rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 common;
依次: libs,client,server

rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force

在这里插入图片描述

5、查看已安装的MySQL

rpm -qa | grep mysql

6、初始化

mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --datadir=/var/lib/mysql;
chown mysql:mysql /var/lib/mysql -R;

1、初始化加上lower-case-table-names=1为了设置mysql不区分大小写
2、如果初始化报错:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
该报错表示提示没有这个共享库:libaio,libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此在linux上安装数据库软件,就需要安装libaio,命令如下:
yum -y install libaio
出现Complete!则表示安装成功,安装完成后再执行初始化命令。
3、最后去修改my.cnf文件,加上lower-case-table-names=1

 vi /etc/my.cnf
 按[i]进入可编辑状态
 在[mysqld]下加入一行:lower_case_table_names=1
 按[Esc]后按[:wq]写入文件

四、启动MySQL

1.启动mysql服务

在线启动:

sudo service mysqld start
关闭mysql服务
service mysqld stop

等待运行结束

本地启动:

systemctl start mysqld;

2、查看mysql服务运行状态

service mysqld status

在这里插入图片描述

3、查看root临时密码

grep "A temporary password" /var/log/mysqld.log;
cat /var/log/mysqld.log | grep password

在这里插入图片描述

4、更改临时密码

mysql -uroot -p
提示输入密码,输入临时密码后显示登录成功
然后执行语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
若提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码不符合当前策略)
修改密码策略,一般为大小写字母+数字+特殊符号

在这里插入图片描述
在这里插入图片描述

5、配置远程访问

查看默认mysql用户
输入:use mysql;
输入:select host, user, authentication_string, plugin from user;
发现root的host是localhost,不是%,可以加个host是%的root账号:
输入:CREATE USER 'root'@'%' IDENTIFIED BY 'Sed123456+';
create user 'root'@'%' identified with mysql_native_password by 'Sed123456+';
若创建错误,提供删除语句:
输入:Delete FROM user Where User='root' and Host='%';
然后为用户授权:
grant all privileges on *.* to 'root'@'%';
最后刷新权限:flush privileges;
退出mysql:
quit;

用navicat配置远程连接数据库时有可能会报如下错误,这是由于mysql配置了不支持远程连接引起的:
1130 - Host ‘windows-7.shared’ is not allowed to connect to this MySQL server
将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、开启防火墙3306端口

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

7、客户端连接mysql报错

MySQL 8.0 配置mysql_native_password身份验证插件的密码

登录MySQL后输入:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

8、mysql数据库不区分大小写表名

修改/etc/my.cnf文件中的lower_case_table_names值:
其中0:区分大小写,1:不区分大小写
需要在安装MySQL时写入lower_case_table_names=1,否则无效

输入:vim /etc/my.cnf
按[i]进入可编辑状态
在[mysqld]下加入一行:lower_case_table_names=1
按[Esc]后按[:wq]写入文件
重启数据库:service mysqld restart
#==========================================
如果登录用户没有修改权限:
# 将目录/etc 及其下面的所有文件、子目录的owner用户改成 root01
chown -R root01:root01 /etc
#给目录opt设置权限
chmod 760 /etc

五、MySQL命令

查看MySQL版本

mysql -V

数据库命令

#创建一个数据库dsm
create database dsm;
#查看所有数据库
show databases;
#切换到mysql数据库
use mysql;
#查看数据库中所有表
show tables;
#执行sql文件
source /home/sql/test.sql;

六、MySQL配置

1、报错:1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column…

修改 my.cnf 文件的 sql_mode (一次性解决问题)

查找 my.cnf 文件: find / -name my.cnf 或者 whereis my.cnf
获取 sql_mode字段内容: SELECT @@sql_mode;
去掉 sql_mode字段中的 only_full_group_by
编辑 my.cnf: vim /etc/my.cnf 将上一步骤的 sql_mode 字段内容添加至 my.cnf
保存,重启: service mysqld restart
sql_mode 字段参考:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

2、MySQL中Java写入时间少14小时

查看时区

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.02 sec)

java写入时间少14小时。这是因为:在解析成预编译语句的时候,误将CST(China Standard Time utc+8)解析成CST(Central Standard Tim UTC-6),美国中部标准时间,所以少14个小时。
可以通过修改my.cnf
在 [mysqld] 之下加
default-time-zone=timezone
来修改时区。如:
default-time-zone = ‘+8:00’
修改完了记得记得重启MySQL
重启MySQL:service mysqld restart

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

Centos7安装mysql8.0教程 的相关文章

  • PHP/PDO/MySQL:插入 MEDIUMBLOB 会存储错误数据

    我有一个简单的 PHP Web 应用程序 它通过文件上传接受图标图像并将它们存储在 MEDIUMBLOB 列中 在我的机器 Windows 和两台 Linux 服务器上 这工作得很好 在第三台 Linux 服务器上 插入的图像已损坏 在 S
  • 删除所有值比第二高值低 5 倍的记录

    我有一个表 价格 有两个字段 代码 字符 和价格 小数 我需要查找具有相同代码 价格比两个最高价格低 5 倍或更少的所有记录 例如 在这种情况下 我希望删除 id 1 id code price 1 1001 10 2 1001 101 3
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 通过日期选择器过滤查询后检索具有特定值的行数[重复]

    这个问题在这里已经有答案了 目前 我正在使用 CodeIgniter 来检索特定时间范围内的数据 所有这些条目都有一个状态 我想将具有相同状态的所有条目分组并将其显示在各自的标题中 目前 这是我的模型类 其中我有以下条目来返回特定日期范围内
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • 使用netcat将unix套接字传输到tcp套接字

    我正在尝试使用以下命令将 unix 套接字公开为 tcp 套接字 nc lkv 44444 nc Uv var run docker sock 当我尝试访问时localhost 44444 containers json从浏览器中 它不会加
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • 在多个数据库的主目录中配置 .my.cnf 不起作用。适用于单个数据库

    这是我的 my cnf 文件 client user user1 password somePasswd1 database someDb client2 user user1 password somePassed2 database s
  • 使用python中的mysql连接器正确从mysql数据库获取blob

    当执行以下代码时 import mysql connector connection mysql connector connect connection params here cursor connection cursor curso
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 如何将mysql数据库移动到另一个安装点

    我有一个 MySQL 数据库 它变得越来越大 我想将整个数据库移动到另一个安装点 在那里我有足够的存储空间 我希望传输当前数据 并将新数据保存到新位置 软件堆栈 在 FreeBSD 6 上运行的 MySQL 5 当然其他答案也是有效的 但如
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • MYSQL数据库删除行后需要进行后期优化

    我有一个当前为 10GB 的日志表 它有很多过去两年的数据 我真的觉得目前我不需要那么多 我是否错误地认为在表中保存多年的数据不好 表越小越好 我的桌子都有 MYISAM 引擎 我想删除 2014 年和 2015 年的所有数据 很快我就会删
  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • 如何在两个不同帐户之间设置无密码身份验证

    我们可以在两台机器的两种不同用途之间设置无密码身份验证吗 例如 计算机A有用户A 计算机B有用户B 我们可以设置密码 ssh 以便计算机 A 上的用户 A 使用其用户帐户 A 登录计算机 B 谢谢你 如果我理解你的问题 你能设置一下吗ssh
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • 获取MySql中重复行的列表

    我有一张这样的桌子 ID nachname vorname 1 john doe 2 john doe 3 jim doe 4 Michael Knight 我需要一个查询 该查询将从具有相同 nachname 和 vorname 的记录
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • 选择不带 FROM 但有多于一行的选择

    如何在不从现有表中进行选择的情况下生成 2 行 2 列的表 我正在寻找的是一个返回的选择语句 e g id value 1 103 2 556 Use UNION http dev mysql com doc refman 5 0 en u
  • MySQL REPLACE 在自动递增行中

    假设我有一个 MySQL 表 其中包含三列 id a and b和名为id is an AUTO INCREMENT场地 如果我将如下查询传递给 MySQL 它将正常工作 REPLACE INTO table id a b VALUES 1

随机推荐

  • ubuntu系统中新建文件的默认权限

    在ubuntu系统中 当我们使用touch 和 mkdir 新建文件和目录时 并没有指明要赋予它们的权限 在man的帮助手册中也没有找到相应选项 虽然后续我们可以使用chmod 修改文件的权限 但是清楚新建文件的默认权限的来源是十分有必要的
  • 根据采购订单IDN进行MIGO过账的BAPI逻辑

    客户需求 根据ALV上的采购订单IDN进行过账 如果有IDN 就根据IDN过账 如果没有 就根据采购订单过账 BAPI ITEM数据填充如下 DATA ls goodsmvt item TYPE bapi2017 gm item creat
  • 黑马程序员——多线程笔记

    a target blank href http www itheima com android培训 a a target blank href http www itheima com java培训 a 期待与您交流 多线程 一 概念 进
  • python数据分析-Pandas数据清洗

    数据的格式请参考前面Pandas常见操作中数据的格式 数据清洗 1 重复值的处理 重复值一般采取删除法来处理 但有些重复值不能删除 例如订单明细数据或交易明细数据等 data data duplicated 判断重复数据并取出 data d
  • 区块链技术体系,快捷学习路径?

    这两年 数字货币和区块链很火 年初写过一些区块链与比特币的文章 反响也很不错 不少网友催我继续写区块链 我在这个方向未曾深耕 也不敢造次 结合自己的经验 写写区块链涉及的技术体系 以及学习区块链的途径和方法 一 区块链技术体系 数据层 数据
  • JVM的内存区域

    JVM的内存区域 不知不觉都大三了 回头看看以前的Android开发过程 遇到的很多问题都需要深入到源码去解决 这也促使我不断地深入学习Java的相关知识 首先要学习的肯定是JVM 不过JVM的知识体系十分庞杂 JVM的内存区域的划分是学习
  • opencv——训练自己的小狗分类器

    opencv python图像识别 训练自己的分类器 opencv支持训练自己的分类器 闲话少说 训练步骤 准备样本图像数据 样本数据预处理 正反样本数据生成正反txt vec文件 训练 测试结果 注意以下几点 首先应该注意样本数据量 预处
  • 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发 其实就是我们开发的h5网页需要放到微信浏览器环境中使用 但是需要对接公众号授权 授权之后可以获取到用户的个人信息 以及可以使用公众号提供的一些API 如 图片上传 图片预览 获取位置信息 微信扫一扫等功能 在没有对接正式
  • 分数蓝桥杯

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 1 1 1 2 1 4 1 8 每项是前一项的一半 如果一共有 2020 项 求这个和是多少 结果用分数表示出来 类似 当然 这只是加了前 22 项而已 分子
  • git克隆、git库管理(git权威指南笔记)

    对等工作区 1 git clone
  • 应急响应-Linux入侵排查

    0x00 前言 当企业发生黑客入侵 系统崩溃或其它影响业务正常运行的安全事件时 急需第一时间进行处理 使企业的网络信息系统在最短时间内恢复正常工作 进一步查找入侵来源 还原入侵事故过程 同时给出解决方案与防范措施 为企业挽回或减少经济损失
  • android 系统内置拍照功能

    启动系统内置拍照功能 Intent localIntent new Intent android media action IMAGE CAPTURE fileUri getOutputMediaFileUri MEDIA TYPE IMA
  • 5000并发的qps是多少_php高并发问题思路

    qps多少才算高并发 首先是无状态前端机器不足以承载请求流量 需要进行水平扩展 一般QPS是千级 然后是关系型数据库无法承载读取或写入峰值 需要数据库横向扩展或引入nosql 一般是千到万级 之后是单机nosql无法承载 需要nosql横向
  • 眼睛血管分割matlab版本

    matlab的代码仅供参考 实现过程基本按照python版本的眼睛血管分割来实现 其中 python版本眼睛血管分割详见 眼睛血管分割python版 clc clear all close all image imread D test D
  • 交换和--排序

    LeetCode 面试题 16 21 交换和 给定两个整数数组 请交换一对数值 每个数组中取一个数值 使得两个数组所有元素的和相等 返回一个数组 第一个元素是第一个数组中要交换的元素 第二个元素是第二个数组中要交换的元素 若有多个答案 返回
  • 常见排序算法及其对应的时间复杂度、空间复杂度

    常见排序算法及其对应的时间复杂度 空间复杂度 排序算法经过长时间演变 大体可以分为两类 内排序和外排序 在排序过程中 全部记录存放在内存 则成为内排序 如果排序过程中需要使用外存 则称为外排序 本文讲的都属于内排序 内排序有可以分为以下几类
  • [Codeforces] number theory (R1600) Part.7

    Codeforces number theory R1600 Part 7 题单 https codeforces com problemset page 1 tags number theory 2C1201 1600 1113B Sas
  • 实现vercel的反向代理和重定向

    实现 vercel 的反向代理和重定向 文章目录 实现 vercel 的反向代理和重定向 vercel简介 前言 反向代理 那么如何实现vercel的反向代理的呢 重定向 vercel简介 Vercel 是一家云服务提供商 旨在使 Web
  • linux永久修改分辨率1920 1080

    linux永久修改分辨率1920 1080 zzh ubuntu cvt 1920 1080 1920x1080 59 96 Hz CVT 2 07M9 hsync 67 16 kHz pclk 173 00 MHz Modeline 19
  • Centos7安装mysql8.0教程

    文章目录 一 卸载MySQL 1 关闭MySQL 2 查看安装的MySQL 3 卸载安装的MySQL 4 删除MySQL相关目录 5 删除my cnf 6 删除MySQL的默认密码 7 检查卸载情况 8 删除mariadb 的安装包 二 在