前言
最近在服务器上搭建环境,总是遇到各种奇怪的错误,浪费了一定的时间。
为此,决定写一个文档进行记录,方便以后的搭建。
搭建的系统版本: centOS 7.9
搭建的环境包含:Mysql, Docker, Docker-compose, Redis
查看当前系统版本
> [root@iZwz99cjofuomor6qxkgojZ etc]# cat /etc/centos-release
> CentOS Linux release 7.9.2009 (Core)
建一个文件用于存放jar包
mkdir temp
安装Mysql
命令:yum install mysql-community-server
如果出现如下错误,请按照后续操作安装Mysql
错误原因:没有添加安装包的源信息
> [root@iZwz99cjofuomor6qxkgojZ etc]# yum install mysql-community-server
> Loaded plugins: fastestmirror
> Determining fastest mirrors
> base | 3.6 kB 00:00:00
> epel | 4.7 kB 00:00:00
> extras | 2.9 kB 00:00:00
> updates | 2.9 kB 00:00:00
> (1/7): epel/x86_64/group_gz | 100 kB 00:00:00
> (2/7): base/7/x86_64/group_gz | 153 kB 00:00:00
> (3/7): epel/x86_64/updateinfo | 1.0 MB 00:00:00
> (4/7): extras/7/x86_64/primary_db | 250 kB 00:00:00
> (5/7): epel/x86_64/primary_db | 7.0 MB 00:00:00
> (6/7): base/7/x86_64/primary_db | 6.1 MB 00:00:00
> (7/7): updates/7/x86_64/primary_db | 25 MB 00:00:00
> No package mysql-community-server available.
> Error: Nothing to do
先创建一个文件,用于存放安装包
mkdir mysql
安装安装包源信息
wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
如果系统版本不相同,请自行更换安装包源信息,地址:https://dev.mysql.com/downloads/repo/yum/
比如我是Cent0S 7.9 选择7的包源,根据自己版本信息进行选择
使用 wget + 刚才拼接的地址,下载安装包源信息
http://dev.mysql.com/get/ 拼接上rpm包 mysql80-community-release-el7-7.noarch.rpm
rpm 安装源信息(包名记得根据自己下载的版本进行更改)
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
使用yum进行安装(自动同意,并且忽略检查)
yum -y install mysql-community-server --nogpgcheck
如果不忽略检查可能会遇到以下问题(原因是Mysql的GPG升级了,需要重新获取):
> Public key for mysql-community-client-8.0.36-1.el7.x86_64.rpm is not installed
> Failing package is: mysql-community-client-8.0.36-1.el7.x86_64
> GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022, file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
设置为忽略大小写
1. 执行命令
> /usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
2. 更改my.cnf文件
> vi /etc/my.cnf
3. 添加一行
lower-case-table-names=1
如果只修改其中一个,会发生报错
Mysql命令执行错误,解决途径
比如执行命令 systemctl start mysqld 出现报错信息:
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
1. 查看错误日志位置
> cat /etc/my.cnf | grep log-error
2. 查看错误日志
> more /var/log/mysqld.log
一些常见错误讲解
[root@iZwz99cjofuomor6qxkgojZ mysql]# more /var/log/mysqld.log
2024-03-14T02:14:01.172214Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.36) initializing of server in progress as process 16844
2024-03-14T02:14:01.176875Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2024-03-14T02:14:01.176918Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the s
2024-03-14T02:14:01.176982Z 0 [ERROR] [MY-010119] [Server] Aborting
2024-03-14T02:14:01.177442Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.36) MySQL Community Server - GPL.
2024-03-14T02:14:01.496102Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.36) starting as process 16847
# 找到ERROR级别的日志,可以看到mysql初始化失败,请删除/var/lib/mysql/下的所有文件(这个文件是my.cnf中设置的,不同的设置,位置是不相同的)
# 本机 /etc/my.cnf 中的配置 datadir=/var/lib/mysql
# 进入到目录中使用命令: rm -rf * 删除所有文件,重新启动mysql即可
2024-03-14T02:19:37.202353Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2024-03-14T02:19:37.202571Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2024-03-14T02:19:37.202591Z 0 [ERROR] [MY-010119] [Server] Aborting
# 启动的时候,想设置为忽略大小写,只修改了/etc/my.cnf文件,但是初始化的时候没有执行这个命令
# 解决方法,打开/etc/my.cnf文件,查看datadir的路径,我的是datadir=/var/lib/mysql
# 删除这个文件夹下的数据,使用/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1命令启动mysql
一些MYSQL常用命令
# 启动
systemctl start mysqld
# 第一次启动后,可以查看mysql初始化密码
grep 'temporary password' /var/log/mysqld.log
# 重启
systemctl restart mysqld
# 停止
systemctl stop mysqld
#查看状态
systemctl status mysqld
查看初始密码:
grep 'temporary password' /var/log/mysqld.log
> [root@iZwz99cjofuomor6qxkgojZ mysql]# grep 'temporary password' /var/log/mysqld.log
> 2024-03-11T03:41:11.965327Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dvPv(djq+28G
# localhost后面的是密码
登录
# 不建议在-p之后直接添加密码,这样会将密码暴露在命令行中
> mysql -u root -p
> Enter password: dvPv(djq+28G
修改root账户密码, 默认的密码策略,需要:大写英文 + 特殊字符 + 数字
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_123';
开放 root 账户远程登录
# 1、进入数据库
use mysql
# 2、修改user表
update user set host='%' where user='root';
# mysql 5.7 及之前,执行这行代码即可
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
# 重载授权表
FLUSH PRIVILEGES;
# 退出
exit
# 重启
systemctl restart mysqld
安装Docker
更新yum到最新版本
sudo yum update
依赖安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置 docker repo 的 yum 位置(添加软件源信息,使用阿里云的)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存
yum makecache fast
sudo yum -y install docker-ce-20.10.12-3.el7 docker-ce-cli-20.10.12-3.el7 containerd.io
sudo systemctl start docker
sudo systemctl enable docker
安装docker-compose
如果安装失败,多尝试几次
sudo curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
赋权
chmod +x /usr/local/bin/docker-compose
安装Redis
更新系统软件包:
sudo yum update
安装EPEL存储库:
sudo yum install epel-release
安装Redis:
sudo yum install redis
启动Redis服务并设置开机自启动:
sudo systemctl start redis
sudo systemctl enable redis
验证Redis是否已成功安装:
redis-cli ping
如果Redis已成功安装,您将看到输出为 "PONG"。
以下是在CentOS 7上设置Redis允许远程连接的步骤:
编辑Redis配置文件:
sudo vi /etc/redis.conf
找到并注释掉以下行(如果存在):
# bind 127.0.0.1
添加以下行来允许所有IP地址连接到Redis服务器:
bind 0.0.0.0
保存并关闭文件。
重新启动Redis服务:
sudo systemctl restart redis
现在,服务器已配置为允许远程连接。请确保在防火墙中打开Redis默认端口(6379)以允许远程连接。使用以下命令来检查Redis服务器是否正在监听所有IP地址:
netstat -tuln | grep 6379
如果看到输出中有 "0.0.0.0:6379",则表示Redis服务器已配置为允许远程连接。
Java环境搭建
yum install java-1.8.0-openjdk.x86_64
java --version
nginx下载
2574 2024-05-09 17:48:18 sudo dnf install nginx
2575 2024-05-09 17:49:07 yum install epel-release -y
2576 2024-05-09 17:50:45 yum install dnf
2577 2024-05-09 17:51:25 sudo dnf install nginx