> 文章列表 > CentOS7(三)MySQL8 Redis7 (单机)安装

CentOS7(三)MySQL8 Redis7 (单机)安装

CentOS7(三)MySQL8  Redis7 (单机)安装

文章目录

  • 一、MySQL安装
    • 1、确认是否有老版本
    • 2、在线安装
    • 3、本地安装
  • 二、启动MySQL
  • 三、MySQL常用配置
    • 1、密码修改
    • 2、配置远程登录
    • 3、开启防火墙 3306 端口
    • 4、 报错
    • 5、MySQL中Java写入时间少14小时
  • 四、Redis 安装
    • 1、安装Redis依赖
    • 2、启动redis
    • 3、指定配置启动 & 后台运行
    • 4、开机自启

一、MySQL安装

1、确认是否有老版本

参考 Centos7安装mysql8.0教程

# 关闭
service mysqld stop
# 查看已经安装的 MySQL - 如果检查没有就可以直接进入下一步了 
rpm -qa|grep -i mysql

CentOS7(三)MySQL8  Redis7 (单机)安装

# 卸载安装的MySQL - 需要对应上图中的四个
rpm -ev mysql-community-client-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-server-8.0.11-1.el7.x86_64  --nodeps
rpm -ev mysql-community-libs-8.0.11-1.el7.x86_64 --nodeps# 卸载MySQL相关目录
find / -name mysql
rm -rf /var/lib/mysql/
rm -rf /usr/lib64/mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /etc/selinux/targeted/tmp/modules/100/mysql# 删除my.cnf
rm -rf /etc/my.cnf# 删除MySQL的默认密码
rm -rf /root/.mysql_sercret# 检查卸载情况
rpm -qa|grep -i mysql# 删除mariadb 的安装包
rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 卸载mariadb

2、在线安装

# 配置 MySQL 8.0 安装源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 安装 MySQL 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server

提示下载插件选择:y
CentOS7(三)MySQL8  Redis7 (单机)安装

3、本地安装

下载安装包: 官方下载地址
百度网盘:链接

# 创建并进入mysql文件夹
mkdir /usr/local/mysql
cd /usr/local/mysql
# 将文件上传到这里,然后解压
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

CentOS7(三)MySQL8  Redis7 (单机)安装

# 依次执行安装
rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force

CentOS7(三)MySQL8  Redis7 (单机)安装
查看已安装的MySQL

rpm -qa | grep mysql

CentOS7(三)MySQL8  Redis7 (单机)安装
初始化

mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --datadir=/var/lib/mysql;
chown mysql:mysql /var/lib/mysql -R;1、初始化加上 lower-case-table-names=1 为了设置mysql不区分大小写
2、如果初始化报错:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
# 该报错表示提示没有这个共享库:libaio,libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此在linux上安装数据库软件,就需要安装libaio,命令如下:
yum -y install libaio
# 出现Complete!则表示安装成功,安装完成后再执行初始化命令。
3、最后去修改my.cnf文件,加上lower-case-table-names=1vi /etc/my.cnf按[i]进入可编辑状态在[mysqld]下加入一行:lower_case_table_names=1[Esc]后按[:wq]写入文件

二、启动MySQL

# 赋权
chmod 777 /etc/my.cnf
# 启动
sudo service mysqld start
关闭mysql服务
service mysqld stop
本地启动:
systemctl start mysqld;
# 查看启动状态
service mysqld status

CentOS7(三)MySQL8  Redis7 (单机)安装

# 查看 root 临时密码
grep "A temporary password" /var/log/mysqld.log;
cat /var/log/mysqld.log | grep password

CentOS7(三)MySQL8  Redis7 (单机)安装
这个意思是没有密码,可以直接回车进入
CentOS7(三)MySQL8  Redis7 (单机)安装

三、MySQL常用配置

1、密码修改

mysql -uroot -p
提示输入密码,输入临时密码后显示登录成功
然后执行语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
若提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码不符合当前策略)
修改密码策略,一般为大小写字母+数字+特殊符号

CentOS7(三)MySQL8  Redis7 (单机)安装

2、配置远程登录

# 查看默认mysql用户
# 输入:
use mysql;
# 输入:
select host, user, authentication_string, plugin from user;
# 发现root的host是localhost,不是%,可以加个host是%的root账号:
# 输入:
create user root@'%' identified by 'qiaosirong';
# 然后为用户授权:
grant all privileges on *.* to root@'%' with grant option;
# 最后刷新权限:
flush privileges;
# 退出mysql:
\\q

3、开启防火墙 3306 端口

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

4、 报错

报错:1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column…

修改 my.cnf 文件的 sql_mode (一次性解决问题)

查找 my.cnf 文件: find / -name my.cnf 或者 whereis my.cnf
获取 sql_mode字段内容: SELECT @@sql_mode;
去掉 sql_mode字段中的 only_full_group_by
编辑 my.cnf: vim /etc/my.cnf 将上一步骤的 sql_mode 字段内容添加至 my.cnf
保存,重启: service mysqld restart
sql_mode 字段参考:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

5、MySQL中Java写入时间少14小时

查看时区

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.02 sec)

java写入时间少14小时。这是因为:在解析成预编译语句的时候,误将CST(China Standard Time utc+8)解析成CST(Central Standard Tim UTC-6),美国中部标准时间,所以少14个小时。

# 可以通过修改 
vi /etc/my.cnf
# 在 [mysqld] 之下加
default-time-zone=timezone
# 来修改时区。如:北京时间
default-time-zone = ‘+8:00’
# 修改完了记得记得重启MySQL,重启MySQL:
service mysqld restart

四、Redis 安装

1、安装Redis依赖

Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:

yum install -y gcc tcl

下载安装包

官网下载地址:https://redis.io/download/
百度网盘:链接

# 打开 
cd /usr/local/src
# 下载二进制包,解压到
tar -C /usr/local/env -xzf redis-7.0.11.tar.gz

CentOS7(三)MySQL8  Redis7 (单机)安装

2、启动redis

# 进入 redis 目录
cd /usr/local/env/redis-7.0.11
# 进行编译
make && make install
# 安装完成后,在任意目录输入redis-server命令即可启动Redis
redis-server

CentOS7(三)MySQL8  Redis7 (单机)安装

# 开启防火墙 6379 端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
# 查看当前已经开放的端口号
firewall-cmd --list-all

3、指定配置启动 & 后台运行

如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf

我们先将这个配置文件备份一份:

cp redis.conf redis.conf.bck

然后修改redis.conf文件中的一些配置

vim redis.conf

#允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
#守护进程,修改为yes后即可后台运行
daemonize yes
#设置后访问Redis必须输入密码
requirepass 123456i
关闭保护模式 - 局域网内可以访问
protected-mode no

启动Redis

进入redis安装目录

cd /usr/local/src/redis-6.2.6

启动

redis-server redis.conf

查看运行状态

ps -ef | grep redis

CentOS7(三)MySQL8  Redis7 (单机)安装
停止
通过杀死进程的方式(这里使用shutdown命令没有停止服务)

kill -9 59830
# 或者
redis-cli -p 6379 shutdown 

4、开机自启

可以通过配置来实现开机自启

首先,新建一个系统服务文件

vim /etc/systemd/system/redis.service

内容如下:

[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/env/redis-7.0.11/redis.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target

然后重载系统服务

systemctl daemon-reload

然后可以用下面这组命令来操作redis

#启动
systemctl start redis
#停止
systemctl stop redis
#重启
systemctl restart redis
#查看状态
systemctl status redis