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

5)始化后调整lower-case-table-names=1参数
目的:该参数只有在初始化才可以更改,要不然启动项目报错,是为了区分表名的大小写。参数值为1表示忽略大小写。默认是0。
5-1)修改/etc/my.cnf文件,增加lower-case-table-names=1
在这里插入图片描述
其中datadir是自己想要安装的mysql存储目录,mysql8默认是var/lib/mysql
5-2)执行初始化命令

mysqld --initialize --user=mysql --lower-case-table-names=1

安装完成

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数据库,可以连接成功

  • 34
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值