Linux下安装MySQL8

news2024/11/19 22:43:59

一、安装MySQL8 

1、下载

  • 官网:https://dev.mysql.com/downloads/mysql/ 
  •  服务器wget下载
cd /data
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle

2、解压 

tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

 3、卸载原有mariadb

rpm -e --nodeps mariadb-libs

 4、安装(按顺序执行

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

5、创建用户 、组 

groupadd mysql
useradd -g mysql mysql

可能已经存在,只是为了防止不存在的情况,导致后续步骤授权出错。 

6、数据目录授权 

chown -R mysql:mysql /var/lib/mysql/

 7、启动、并设置开机自启

systemctl start mysqld.service && systemctl enable mysqld.service
  •  可能会启动失败

  • 按照错误提示执行命令查看具体错误
journalctl -xe
  •  可能报错:mysqld[6414]: /usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 

       没有安装依赖  libaio,运行如下命令解决:

yum -y install libaio-devel.x86_64
yum -y install numactl
  •  可能报错:[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
    [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.

  大意就是数据目录中有文件,初始化中止了。指定的数据目录/var/lib/mysql/不可用,删除所有文件后初始化服务添加进去。使用如下命令解决:

cd /var/lib/
rm -rf mysql/
mysqld --initialize --user=mysql 
  •  解决报错后,重启MySQL
systemctl restart mysqld.service

8、查看状态及版本 

systemctl status mysqld.service
mysqladmin --version

 至此MySQL安装成功。

二、创建用户

1、查看密码

cat /var/log/mysqld.log

 2、登入MySQL

mysql -u root -p

 3、修改root用户密码

  •  不能使用5.7版本的update语句了 set password=password('root1234'),得使用ALTER USER
  • MySQL8密码使用了caching_sha2_password加密方式,旧的Navicat客户端可能不支持该种加密方式,若是新客户端可以去除指定的加密方式:WITH mysql_native_password 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rootmysql';

4、查看用户

use mysql;
select host,user,authentication_string,plugin from user;

5、修改访问权限

update user set host='%' where user='root';
flush privileges;

 6、创建服务端项目用户(按个人需要执行)

CREATE USER 'bus'@'%' IDENTIFIED WITH mysql_native_password BY 'bus123456';

7、远程连接

  • 可能报错:2003 - Can't connect to MySQL server on 'xxx' (10060 "Unknown error")

   服务器端口可能未开放,开放端口

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

  返回no说明未开放,开放3306端口 

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

  重启防火墙生效配置 

firewall-cmd --reload

  查看验证,返回yes端口开放成功 

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

若服务器端口开放了还不能连接访问,则是服务器厂商对应的安全组限制了 

腾讯云服务器端口怎么开放?端口开通教程

腾讯云服务器端口怎么开放?端口开通教程 - 腾讯云开发者社区-腾讯云

阿里云添加安全组规则

添加安全组规则_云服务器 ECS-阿里云帮助中心

  • 可能报错:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:

  客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password,将其改为老的加密验证方式:mysql_native_password

ALTER USER '账号'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

8、连接成功,创建完成 

三、赋权

  一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限:

ALL: 所有可用的权限

CREATE: 创建库、表和索引

LOCK_TABLES: 锁定表

ALTER: 修改表

DELETE: 删除表

INSERT: 插入表或列

SELECT: 检索表或列的数据

CREATE_VIEW: 创建视图

SHOW_DATABASES: 列出数据库

DROP: 删除库、表和视图

EXECUTE:执行存储过程

基本命令:(赋权命令执行后,需执行“flush privileges;”生效)

  • 查看用户权限
SHOW GRANTS FOR root;
  • 查看是否有grant权限
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
  •  赋予用户grant权限
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

 1、赋权

  • 赋予root用户所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges;
  • 赋予业务用户除删除表删除库等敏感权限外的基本权限 
GRANT SELECT ON `performance_schema`.* TO 'school'@'%';
GRANT SELECT ON `information_schema`.* TO 'school'@'%';
GRANT SELECT ON `mysql`.* TO 'school'@'%';
GRANT CREATE,ALTER,INSERT,SELECT,DELETE,UPDATE,INDEX ON `school`.* TO 'school'@'%';
GRANT PROCESS ON *.* TO 'school'@'%';
flush privileges;

2、可能报错

  • ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'XXX' 

  见上,赋予root用户所有权限即可。如果是其它用户可使用如下命令:

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='school';

  当然赋权的权限不建议给出root外的其它用户 

  •  1227 - Access denied; you need (at least one of) the PROCESs privilege(s) for this operation

   PROCESS是用来查看谁连接数据的一个权限,除了root用户,都只能看到自己的。使用如下命令解决:

GRANT PROCESS ON *.* TO 'school'@'%';

 至此赋权完成。

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

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

相关文章

十进制转二进制/八进制/十六进制

首先,我们有一个十进制的数字**(21)D**,其他博主都是用除法来算,如果数字小还能适用,如果数字大,就不适用了 以下是我的方法: 十进制转二进制: 通过上图我们可以得到(21)D的二进制为(10101)B&…

【C++】STL——容器适配器 stack和queue 深度剖析及模拟实现

文章目录 1. stack的介绍及使用1.1 stack的介绍1.2 stack的使用 2. stack的模拟实现2.1 适配器模式的了解2.2 结构2.3 成员函数 3. queue的介绍及使用3.1 queue的介绍3.2 queue的使用 4. queue的模拟实现5. STL标准库中stack和queue的底层结构6. deque的简单介绍(了解)6.1 dequ…

Linux安装GitLab

一、摘要 公司经常用Gitlab做为代码仓库,这里我也安装下Gitlab,为后面CI/CD集成打下基础,官方安装地址:https://about.gitlab.com/install/#centos-7。不过官网很多人说比较坑,这里就不用官方方法安装了。 二…

在职字节,一个8年软件测试工程师的学习经历

简单的先说一下,坐标北京,15届本科毕业,算上年前在字节跳动的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…

ChatGPT:DevSecOps 落地实践的最后一公里

DevSecOps 背后的三个逻辑 复杂性:让安全从 “幕后” 走向 “台前” 安全并不是一个新鲜的话题,自软件诞生以来,安全就一路伴随,但是近几年安全似乎又到了一个新的 “热度” 与 “高度”。 一些企业、组织都在探讨软件供应链安全…

Vue3迎来升级,助力企业数字化转型

近年来,随着“互联网”的推进与应用普及,数字化转型已经成为企业发展的必备选项。低代码开发平台的迅速普及和广泛应用,也为企业数字化的转型提供了支撑技术。 JNPF快速开发平台深度集成java.net 6 双技术引擎,具备易维护、便部署…

H3C-NE-实验-VLAN的划分

实验拓扑结构图: 1. 配置PC机的IP地址 依次为192.168.1.1/24、192.168.1.2/24、192.168.1.3/24、192.168.1.4/24 注意接口管理要启用,接口状态必须为UP 2. 检测Ping通性 因为4台PC机都在同一个网段,H3C交换机默认端口也是属于Access口&#x…

【c语言】文本文件的读写操作

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

【复杂网络建模】——通过图神经网络来建模分析复杂网络

目录 一、复杂网络介绍 二、复杂网络建模分析方法 三、基于图神经网络来建模 1、数据准备 2、构建图神经网络模型 3、学习节点和边的表示 4、特征提取和预测 5、模型评估和优化 四、可视化建模分析 1、初始网络可视化 2、特征可视化 一、复杂网络介绍 复杂网络是指…

会“教”难“育”,AIGC卷不了教师

文丨智能相对论 作者丨沈浪 大模型的风想要挂向教育行业的深处&#xff0c;还得再等上一些时日。 ChatGPT在市场上火得一塌糊涂&#xff0c;大有颠覆传统教育行业的趋势&#xff0c;而体制内却冷静得像是不知道ChatGPT的存在。 “你知道现在很火的ChatGPT吗&#xff1f;”—…

【利用AI刷面试题】AI:十道JavaScript面试题巩固一下知识

文章目录 1. 请说明 JS 中的闭包是什么&#xff0c;它有哪些应用场景&#xff1f;2. 请描述一下数组的遍历方式&#xff0c;如何向数组中添加元素&#xff1f;3. 如何利用JS实现一个进度条&#xff1f;4. 请阐述浮点数在 JavaScript 中的存储机制&#xff1f;5. 请简述ES6 模块…

WP插件新漏洞使超过 200 万个站点面临网络攻击

近日&#xff0c;在发现安全漏洞后&#xff0c;敦促 WordPress 高级自定义字段插件的用户更新版本 6.1.6。 该问题的标识符为 CVE-2023-30777&#xff0c;与反映的跨站点脚本 (XSS) 案例有关&#xff0c;该案例可能被滥用以将任意可执行脚本注入其他良性网站。 该插件有免费版…

不需要操作系统运行的程序:hello,os world!

boot.asm org 07c00h mov ax, cs mov ds, ax mov es, ax call DispStr jmp $ DispStr:mov ax, BootMessagemov bp, axmov cx, 16mov ax, 01301hmov bx, 000chmov dl, 0int 10hret BootMessage: db "Hello,OS World!" times 510-($-$$) db 0 dw 0xaa55当计算机电源…

2023—Unity打包Pico3全流程(Pico插件)

一、项目选择了2021.3.0版本的URP&#xff0c;把项目Build成Android 二、打开Project Setting→ 安装最下面的XR Plugin Management 安装完成后的界面&#xff0c;此时还没有Pico选项出现 三、我们需要在该网站下载Pico的SDK包 picoxr/VRTK-Support (github.com) 解压该文件到…

国内最佳的Respond.io替代品——SaleSmartly(ss客服)

Respond.io也是一个得力的工具&#xff0c;但国内是否也有这样的集成与营销工具呢&#xff1f;用&#xff0c;比如SaleSmartly&#xff08;ss客服&#xff09;。 什么是 Respond.io&#xff1f; Respond.io是一个基于网络的消息传递平台&#xff0c;可将客户从任何渠道连接到多…

自动化测试【selenium环境搭建+webdriver API】

一、初试自动化测试 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&#xff0c;预设条件包括正常和异常&#xff0c;最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程&#xff1b;也就是说自动化测试相当于将人工测试手段进行转化&a…

【Flutter混合开发】在Android项目中如何启动Flutter

目录 前言现有项目中引入Flutter启动flutter页面加速启动启动传参总结 前言 flutter可以独立完成项目&#xff0c;但是在现有项目情况下最好的方式就是混合开发&#xff0c;逐步过渡。这样就会共存native和flutter代码&#xff0c;而其中最关键的就是native如何启动flutter页面…

品优购项目学习记录04--列表页

文章目录 1.品优购项目列表页制作准备工作2.列表页header和nav修改2.1 秒杀logo的制作2.2 导航栏nav修改 3.列表页主体sk_container 1.品优购项目列表页制作准备工作 1.列表页面是新的页面&#xff0c;我们需要新建页面文件list.html 2.因为列表页的头部和底部基本一致&#x…

OpenAI 和谷歌最怕的,是一张开源笑脸

「我们没有护城河&#xff0c;OpenAI 也没有。」 在最近泄露的一份文件中&#xff0c;一位谷歌内部的研究人员表达了这样的观点。这位研究人员认为&#xff0c;在这场激烈的 AI 竞赛中&#xff0c;虽然谷歌与 OpenAI 在你追我赶&#xff0c;但真正的赢家未必会在这两家中产生&…

opencv_c++学习(十二)

一、ROI区域截取 Range(int _start, int _end)start:区间的起始(包含此范围)。 end:区间的结束(不包含此范围)。 Rect_(_Tp_x,_Tp _y_Tp _width,_Tp _height)_Tp:数据类型&#xff0c;C模板特性&#xff0c;可以用int、double、float等替换。 _x:矩形区域左上角第一个像素的…