centos7安装MySQL、redis

7 篇文章 0 订阅
7 篇文章 0 订阅

需要看centos7安装教程可看 Vmware安装centOS7
需要看centos7安装jdk、git、maven可看 centos7安装jdk、git、maven

一、MySQL安装

创建mysql存放目录
cd /usr/
mkdir mysql

下载mysql yum存储库
mysql社区版官方yum存储库
在上面的地址中下载对应linux系统的官方yum存储库,我这里是centos7系统安装,所以下载Linux7的yum存储库
在这里插入图片描述
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
在这里插入图片描述
安装5.7版本的话可下载这个链接:https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装mysql yum存储库
yum install -y mysql80-community-release-el7-3.noarch.rpm 其中 mysql80-community-release-el7-3.noarch.rpm即下载的yum存储库名称
在这里插入图片描述
yum安装mysql服务
yum -y install mysql-community-server
会在刚刚安装的yum存储库中下载mysql安装包进行安装mysql服务
在这里插入图片描述
如果出现如下错误提示(GPG keys不匹配):
在这里插入图片描述
解决方案(比如2022年安装的MySQL):

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

再次执行 yum -y install mysql-community-server 安装命令即可
在这里插入图片描述
启动mysql服务
启动mysql服务:systemctl start mysqld.service
查看mysql服务状态:systemctl status mysqld.service
在这里插入图片描述
本机登录mysql
首先获取登录密码,通过yum方式安装的mysql服务,可通过下面的命令查看:

grep "password" /var/log/mysqld.log

其中 root@localhost 后面的 bTjVTt!rV81z 就是yum安装时生成的默认密码,登录命令:

mysql -uroot -p

回车,输入刚刚查看获得的密码
在这里插入图片描述
此时登录进来之后,首先修改root的密码,因为修改密码之后才可以做数据库表的操作(每条命令都需要以;结尾,否则命令不会执行,输入;后才会执行):

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

新密码有个要求就是:大小写字母数字和特殊符号(,/';:@等)都要含有,否则会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
在这里插入图片描述
开启mysql远程连接
mysql8.0版本:
需要执行两句命令(username一般是root,password是刚刚设置的新密码,我这里是root@123456Y):

create user username@'%' identified by 'password';
grant all privileges on *.* to root@'%' with grant option;

mysql5.7及之前版本(username一般是root,password是刚刚设置的新密码,我这里是root@123456Y):

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

不论是mysql5.7还是mysql8.0的版本设置之后还需要刷新才能生效:

flush privileges;

在这里插入图片描述
使用非本机上的Navicat连接centos上的mysql服务:
下面的报错是因为防火墙的原因,要么将防火墙关闭,要么将MySQL服务占用的端口默认3306进行防火墙拦截放行
在这里插入图片描述
关闭防火墙:systemctl stop firewalld.service

centos防火墙放开某个端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent 其中3306是需要放开的端口号
然后刷新:firewall-cmd --reload

设置防火墙之后再次连接:
如果出现下面的报错:
在这里插入图片描述
报错原因是mysql8.0 之前的版本中加密规则是 mysql_native_password, 而在mysql8.0之后,加密规则是 caching_sha2_password
查看加密规则命令:

select user,host,plugin from user where user='root';

在这里插入图片描述
解决方案:
1.更换高版本的Navicat连接
Navicat15下载 提取码:1ppn
在这里插入图片描述
2.修改编码规则为 mysql_native_password
在mysql中执行下面两条命令(username一般是root,password是刚刚设置的新密码,我这里是root@123456Y):

ALTER USER username@'%' IDENTIFIED WITH mysql_native_password BY 'password';

上面修改编码规则的命令是修改的’%'的加密规则即修改的远程连接的加密规则,如果也将本机的加密规则修改的话将%替换为localhost即:

ALTER USER username@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

刷新:

flush privileges;

在这里插入图片描述
使用两个版本的Navicat,现在都可以连接成功
在这里插入图片描述
在这里插入图片描述
修改MySQL编码规则
查看目前的编码规则:
在MySQL中输入:

status;

在这里插入图片描述
可以看到目前使用的编码规则就是utf8mb4,是我们需要的编码规则那么就不需要修改。
如果是其他的编码规则,需要修改的话:
首先在MySQL中输入:

exit;

退出mysql;
编辑MySQL配置文件

vi /etc/my.cnf

添加以下四行配置:
[client]
default-character-set=utf8mb4
下面两句配置在[mysqld]标签下面:
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
在这里插入图片描述
重启MySQL,进入MySQL使用status;命令查看编码规则是否改变。
重启MySQL命令:

systemctl restart mysqld.service

设置MySQL开机自启

systemctl enable mysqld.service

重启centos,测试是否开机自启。
重启centos命令:

shutdown -r now

在这里插入图片描述
MySQL命令
启动MySQL:systemctl start mysqld.service
关闭MySQL:systemctl stop mysqld.service
重启MySQL:systemctl restart mysqld.service
查看MySQL状态:systemctl status mysqld.service
将MySQL加入开机自启:systemctl enable mysqld.service
将MySQL移出开机自启:systemctl disable mysqld.service

到此MySQL安装完毕,为了安全可以将MySQL的默认端口3306进行修改;以及为每个数据库配置一个账号密码,防止因为某个数据库的账号密码泄露导致所有数据库都被攻击,或者为了方便管理只授予对应人员对应数据库的账号密码也可以为每个数据库新建账号密码。

修改MySQL默认端口(编辑 my.cnf 文件):

vi /etc/my.cnf

在 [mysqld] 下面添加如下配置:
[mysqld]
port=修改后的端口号
如:

[mysqld]
port=16788

在这里插入图片描述
保存退出,重启MySQL即可。

添加账号密码:
a、使用root账号登录MySQL

mysql -u root -p

在这里插入图片描述
b、创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username:用户名(账号)(下同)
host:设置该用户可以在哪个主机上登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%(下同)
password:密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器(下同)

c、授权

GRANT privileges ON databasename.tablename TO 'username'@'host';

privileges:操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名称,所有数据库可用 * 代替
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用 * 表示,如*.*

例如:创建一个 testwww 的账号,密码为 Test@123456W ,授予该账号 所有数据库表的 所有权限并且任意主机都可登录。

mysql -u root -p
CREATE USER 'testwww'@'%' IDENTIFIED BY 'Test@123456W';
GRANT ALL ON *.* TO 'testwww'@'%';

二、redis安装

创建redis存放目录
cd /usr/
mkdir redis

下载redis的tar.gz压缩包
下载地址
可以在上面的下载地址中选择对应版本下载,然后上传到centos7中刚刚创建的redis目录中或者在刚刚创建的redis目录中使用 wget 下载,如果没有科学上网的话可能下载会比较慢,可以使用迅雷下载tar.gz压缩包,然后用xftp上传到redis目录中
比如 wget 下载6.2.4的版本可以用下面的命令下载
wget http://download.redis.io/releases/redis-6.2.4.tar.gz
在这里插入图片描述
解压压缩包
命令 tar -zxvf redis-6.2.4.tar.gz -redis-6.2.4.tar.gz是下载的对应版本的压缩包的名称
在这里插入图片描述
切换到解压之后的目录
cd redis-6.2.4
在这里插入图片描述
安装
命令:make 或者 make install PREFIX=/usr/local/redis 第二种命令只是指定了redis的安装目录,最终产生的效果就是将tar.gz包解压之后的目录中的src目录下的几个文件拷贝到了 /usr/local/redis/bin/ 目录下,比如启动的时候既可以执行src目录下的 redis-server 可执行文件也可以执行 /usr/local/redis/bin/ 目录下的 redis-server 可执行文件启动redis服务端;而直接 make 安装的方式并没有生成 /usr/local/redis 目录,想要启动redis服务端只能在解压包中的src目录下执行 redis-server 可执行文件
在这里插入图片描述
直接make,没有 /usr/local/redis 目录:
在这里插入图片描述
指定安装目录的方式生成了 /usr/local/redis/bin/ 目录并且拷贝了文件:
在这里插入图片描述
执行 make 有个前提是redis的安装需要有 gcc 的支持,输入 gcc -v 查看本机是否有gcc环境
在这里插入图片描述
这里的4.8.5的版本是centos7安装的默认版本,如果未安装使用 yum install -y gcc 安装gcc环境,也是4.8.5的版本
在这里插入图片描述
启动redis服务端
1.直接启动(非守护进程的方式即ctrl + c/或者断网让xshell窗口失去和服务器的连接之后就会让redis服务关闭)
切换目录到解压目录的src目录下
cd /usr/redis/redis-6.2.4/src/
执行 redis-server 文件,启动服务端
./redis-server
在这里插入图片描述
指定安装目录的方式安装的redis的话,也可以执行 /usr/local/redis/bin/ 目录下的 redis-server 文件
在这里插入图片描述
2.守护进程启动即后台启动,关闭终端redis服务也不会关闭
修改redis配置文件,配置文件在解压目录下和src目录同级 redis.conf 文件
在这里插入图片描述
一般在做配置文件的修改之前建议将默认的配置文件进行一次备份
cp redis.conf redis_old.conf
在这里插入图片描述
daemonize no 改为 daemonize yes
在这里插入图片描述
重新启动:
需要指定使用的配置文件是哪个(先将redis服务kill掉)

./redis-server ../redis.conf

在这里插入图片描述
3.加入开机自启
创建 redis.service 文件
vi /etc/systemd/system/redis.service
添加以下配置

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/redis/redis-6.2.4/src/redis-server /usr/redis/redis-6.2.4/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Description:服务描述
After:服务类别
Type=forking:后台形式运行
ExecStart:运行服务的命令,redis-server和redis.conf需要写绝对路径
PrivateTmp=True:给服务分配独立的临时空间

开启开机自启:systemctl enable redis.service
在这里插入图片描述
重启centos看redis是否自动启动
如果登录的root用户,可以通过 shutdown -r now 命令重启centos

其他命令:
关闭开机自启:systemctl disable redis.service
启动redis:systemctl start redis.service
关闭redis:systemctl stop redis.service
查看redis状态:systemctl status redis.service
重启redis:systemctl restart redis.service
在这里插入图片描述
注意:以上的几条命令,需要配置了 redis.service 文件后,重启centos才生效,否则不生效。未重启的情况下可以通过 kill 关闭redis服务

如果配置开机自启文件之后,启动redis失败,出现如下错误:
在这里插入图片描述
解决方案:
在 /etc/systemd/system/redis.service 文件中加入如下配置:
After=network-online.target
Wants=network-online.target
即最终的 /etc/systemd/system/redis.service 文件配置如下:

[Unit]
Description=redis-server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/redis/redis-4.0.8/src/redis-server /usr/redis/redis-4.0.8/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

修改 /etc/systemd/system/redis.service 文件之后,先看下redis进程是否存在,如果存在则先 kill 掉redis的进程,然后使用 systemctl start redis.service 命令启动redis即可。
在这里插入图片描述
如果这里没有出现该错误,后面配置了 开启远程访问、修改端口密码之后启动失败出现同样的错误,也可以这样解决。

开启远程访问
即可以通过非本机连接redis服务
未开启远程连接的情况下,非本机连接报错如下:
在这里插入图片描述
修改配置文件
vi /usr/redis/redis-6.2.4/redis.conf
在这里插入图片描述
重启redis服务 systemctl restart redis.service
远程可以连接redis服务(我这里连接用的Windows的redis安装包里面的redis-cli.exe连接的centos上的redis服务,如果直接执行redis-cli.exe默认是连接127.0.0.1:6379的redis服务并且不带密码,加上-h参数连接其他ip的redis服务,-p指定端口 -a指定密码如果没有密码可以不写)
在这里插入图片描述
如果还是不能连接的话,可能是防火墙的原因,那么放行redis服务的端口或者关闭防火墙:
centos关闭防火墙命令:systemctl stop firewalld.service

centos防火墙放开某个端口命令:firewall-cmd --zone=public --add-port=10000/tcp --permanent 其中10000是需要放开的端口号
然后刷新:firewall-cmd --reload
这样就将10000端口进行放开了,即使开启防火墙10000端口也可以访问。
在这里插入图片描述

最后建议设置redis的连接密码以及修改端口,防止恶意攻击
修改端口:将配置文件中的 port 参数值修改为其他的端口号
在这里插入图片描述
设置连接密码:修改配置文件中 requirepass foobared 默认被注释参数的值为自己的密码
在这里插入图片描述
重启redis服务,因为前面配置过 redis.service 文件并且重启过centos,所以这里可以通过 systemctl restart redis.service 重启,或者kill掉进程,然后执行 redis-server 可执行文件 ,需要指定修改后的配置文件启动

./redis-server ../redis.conf

再次连接:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值