文章目录
- 一、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
# 卸载安装的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
3、本地安装
下载安装包: 官方下载地址
百度网盘:链接
# 创建并进入mysql文件夹
mkdir /usr/local/mysql
cd /usr/local/mysql
# 将文件上传到这里,然后解压
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
# 依次执行安装
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
查看已安装的MySQL
rpm -qa | grep mysql
初始化
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=1
vi /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
# 查看 root 临时密码
grep "A temporary password" /var/log/mysqld.log;
cat /var/log/mysqld.log | grep password
这个意思是没有密码,可以直接回车进入
三、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(密码不符合当前策略)
修改密码策略,一般为大小写字母+数字+特殊符号
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
2、启动redis
# 进入 redis 目录
cd /usr/local/env/redis-7.0.11
# 进行编译
make && make install
# 安装完成后,在任意目录输入redis-server命令即可启动Redis
redis-server
# 开启防火墙 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
停止
通过杀死进程的方式(这里使用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