需要看centos7安装教程可看 Vmware安装centOS7
需要看centos7安装jdk、git、maven可看 centos7安装jdk、git、maven
创建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
添加账号密码:
a、使用root账号登录MySQL
mysql -u root -p
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存放目录
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