当前位置: 首页 > news >正文

linux服务器安装mysql8

1.下载MYSQL

近几天在linux服务器已安装过2次mysql8,亲测有效,没有遇到任何问题,文档已写的很清楚,按步骤来即可。如果按文档有遇到要使用yum命令的话,需要服务器开通外网。

1.1官网下载

进入官网下拉到最后,找到下载
在这里插入图片描述

1.2选要下载的版本

在这里插入图片描述
找到自己linux对应版本点下载,我这里是linux7
在这里插入图片描述

2.安装mysql8

2.1 将下载到本地的tar包上传到服务器,我用的是finalshell

1)我这上传到opt/mysql,mysql文件夹可以右键新建或者mkdir mysql
在这里插入图片描述
2)解压文件

# tar -xvf mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
3)安装rpm
只安装必要的几个包就行,命令如下

rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm

1、则查看有没有安装mariadb-libs这个包

rpm -q mariadb-libs
# 检查到有这个包的安装
mariadb-libs-5.5.60-1.el7_5.x86_64
# 直接运行
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64

2、如果失败
在这里插入图片描述
PS1:因为LINUX自带了mariadb数据库,所以导致MYSQL安装失败

PS1:卸载过程中可能会遇到
3、那是因为red hat系统会自带postfix服务(postfix服务是一个邮件服务器),所以要卸载mariadb需要先卸载postfix

yum remove postfix
# 再卸载mariadb-libs
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64
# 最后重新执行命令
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm

4)继续安装rpm

rpm -ivh mysql-community-devel-8.0.35-1.el7.x86_64.rpm 
# 如果报错
错误:依赖检测失败:pkgconfig(openssl) 被 mysql-community-devel-8.0.35-1.el7.x86_64 需要
# 解决办法
yum install openssl-devel -y
# 再重新安装devel包

继续

rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm 
yum install net-tools
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm

如果安装server报错
/usr/bin/perl 被 mysql-community-server-8.0.18-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

解决办法:
yum install net-tools
yum install -y perl-Module-Install.noarch
然后进行安装
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm

安装完成

2.2启动mysql服务

# 启动mysql服务(时间有点长)
systemctl start mysqld
# 查看mysql的启动状态
systemctl status mysqld

在这里插入图片描述
启动成功

systemctl enable mysqld
# 用于设置MYSQL的开机自启动
netstat -tunlp | grep mysql
# 用管道过滤的方式观察MYSQL的服务
ps -ef | grep mysql
# 查看MYSQL的进程

3.登录mysql

在完成安装后,第一次启动时,MYSQL会在指定位置(/var/log/mysqld.log)生成一个log文件,里面包含了一些信息(其中就有我们需要的临时密码)
我们还是可以通过管道符来筛选临时密码。

cat /var/log/mysqld.log | grep password

在这里插入图片描述

# 用临时密码登录
mysql -uroot -p
# 粘贴临时密码
hU0e*was)FRQ

在这里插入图片描述

3.1修改密码
# 查看密码策略
SHOW VARIABLES LIKE 'validate_password%';
# 提示必须通过alter user 重置密码You must reset your password using ALTER USER statement before executing this statement.
# 先设置包含大小写字母 数字 字符的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Dlcqj@5569';
# 再查看密码策略
SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

# 1、首先需要设置密码的验证强度等级,设置 validate_password.policy 的全局参数为 LOW 即可
set global validate_password.policy=LOW;
# 2、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 4 位的密码
set global validate_password.length=4;
# 3、现在为mysql设置4位的长度密码即可
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';

关于 mysql 密码策略相关参数;
1)、validate_password.length 固定密码的总长度;
2)、validate_password.dictionary_file 指定密码验证的文件路径;
3)、validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password.policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password.special_char_count 整个密码中至少要包含特殊字符的个数;
证等级,默认为 MEDIUM;
关于 validate_password.policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password.special_char_count 整个密码中至少要包含特殊字符的个数;

远程链接报错时:
‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server

出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。

解决方法:
1、在MySQL所在服务器上使用命令登录到MySQL数据库中
mysql -u root -p

2、选择mysql数据库,并查询权限
use mysql;

select host from user where user=‘root’;
在这里插入图片描述
可以看到,执行查询语句后得到的数据结果中 host 的值是 localhost

我们执行update语句修改权限
update user set host = ‘%’ where user =‘root’;

3、刷新配置

flush privileges;

再次执行查询权限语句
select host from user where user=‘root’;
在这里插入图片描述
可以看到,已经修改成功

4、最后再次用其他机器连接MySQL数据库,可以连接成功

http://www.lryc.cn/news/328969.html

相关文章:

  • 亚信安全荣获2023年度5G创新应用评优活动两项大奖
  • linux之忘记root密码
  • jspm智能仓储系统
  • 深入理解数据结构(3):栈和队列详解
  • 单例设计模式(3)
  • 将jupyter notebook文件导出为pdf(简单有效)
  • 使用INSERT INTO ... ON DUPLICATE KEY UPDATE批量插入更新导入excel数据的实践场景应用
  • AJAX-项目优化(目录、基地址、token、请求拦截器)
  • SQLite中的动态内存分配(五)
  • 快速上手Spring Cloud 十一:微服务架构下的安全与权限管理
  • 如何简化多个 if 的判断结构
  • 发掘服务器硬件优势:怎样有效管理、维护、更新
  • SD卡备份和烧录ubuntu20.04镜像
  • 短视频账号矩阵系统/开发 -- -- -- 蒙太奇算法上线
  • Docker Stack(堆栈) 部署多服务集群,多服务编排
  • 全国青少年软件编程(Scratch)等级考试二级考试真题2023年12月——持续更新.....
  • python基础——异常捕获【try-except、else、finally】
  • JAVA面试大全之JVM和调优篇
  • 数据可视化-ECharts Html项目实战(8)
  • JavaSE:继承和多态(下篇)
  • springboot+mybatis项目集成p6spy输出格式化sql日志
  • yarn安装和使用及与npm的区别
  • 【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析
  • 推荐多样性 - 华为OD统一考试(C卷)
  • vue基础教程(4)——十分钟吃透vue路由router
  • 使用OpenSSL指令测试椭圆曲线签名算法ECDSA
  • ubuntu之搭建samba文件服务器
  • P10—P11:Java程序的编译和运行
  • 【Docker】Windows中打包dockerfile镜像导入到Linux
  • 数据结构之单链表实现(JAVA语言+C语言)