CentOS服务器环境配置
网络,yun源配置
- 一般都是配置好的
# internet
/etc/sysconfig/network-scripts/ifcfg-eth0
# yum repo
/etc/yum.repos.d/CentOS-Base.repo
# 更换清华yum源
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 更新软件包缓存
sudo yum makecache
MySQL yum安装
# 下载官方的yum源
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
# Rocky Linux 9的OpenSSL是3.x,需要el9-1构建,使用下面的yum源
wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# 安装rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# 查看mysql的版本,默认是8.0
yum list|grep mysql
# 这个yum源支持多版本的mysql,所以可以修改一下安装的版本
vim /etc/yum.repos.d/mysql-community.repo
#将enabled置为1的就是要下载的版本,这里把connectors和tools取消
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
# 查看是否是正确的版本
yum repolist enabled | grep mysql
#安装mysql
yum install mysql-community-server --nogpgcheck
#可能遇到的错误 Error: GPG check FAILED
使用 yum install xxx.rpm --nogpgcheck跳过公钥检查
yum install mysql-community-server --nogpgcheck
# 启动mysql并查看状态
systemctl start mysqld.service
systemctl status mysqld.service
#找到root用户的密码
grep "password" /var/log/mysqld.log
mysql -uroot -pxxxx
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 如果需要若密钥,修改规则
set global validate_password_policy=0;
set global validate_password_length=1;
# mysql8.0
SET GLOBAL validate_password.policy = 0;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'the password';
# 远程访问
use mysql;
update user set host='%' where user='root';
# 新建用户
CREATE USER 'zwq'@'%' IDENTIFIED BY 'xxxxx';
GRANT ALL ON *.* TO 'zwq'@'%';
flush privileges;
# 防火墙
systemctl status firewalld
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
yum list installed
# 删除mysql yum源
yum -y remove mysql80-community-release.noarch
MySQL 二进制包安装
- 下载解压
下载https://dev.mysql.com/downloads/mysql
tar -xvf mysql-8.4.11-linux-glibc2.28-x86_64-minimal.tar.xz
mv mysql-8.4.11-linux-glibc2.28-x86_64-minimal /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
- 添加用户,创建相关文件夹
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /var/lib/mysql /var/log/mysql /var/run/mysql
chown -R mysql:mysql /var/lib/mysql /var/log/mysql /var/run/mysql
chmod 750 /var/lib/mysql
- 配置文件
mkdir /etc/mysql
vi /etc/mysql/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock
port=3306
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysql.err
pid-file=/var/run/mysql/mysql.pid
max_connections=1000
max_user_connections=200
wait_timeout=600
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
open_files_limit=65535
- 初始化
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/mysql/my.cnf --initialize
可能报错shared libraries: libaio.so.l:cannot open shared object file: no such file ...
相关依赖
yum -y install libaio ncurses-compat-libs numactl-libs
查看初始密码
cat /var/log/mysql/mysql.err or grep 'temporary password' /var/log/mysql/mysql.err
- 系统服务 vi /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=simple
# 指定启动脚本和停止脚本(直接使用mysql.server)
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf
# 指定运行用户和组
User=mysql
Group=mysql
# PID 文件路径(必须与 my.cnf 中 pid-file 设置一致)
RuntimeDirectory=mysql
RuntimeDirectoryMode=0755
PIDFile=/var/run/mysql/mysql.pid
# 重启策略
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
# 超时设置
TimeoutSec=300
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable mysql
systemctl start mysql
systemctl is-enabled mysql
- 修改mysql密码,用户
cd /usr/local/mysql/bin/
./mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
CREATE USER 'root'@'%' IDENTIFIED BY 'xxx';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
CREATE USER 'zwq'@'%' IDENTIFIED BY 'xxx';
GRANT ALL PRIVILEGES ON *.* TO 'zwq'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- 环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
JDK
rpm -ivh jdk-8u241-linux-x64.rpm
java -version
Redis
- 用户
useradd -r -s /sbin/nologin redis
- 编译
tar -zxvf redis-7.2.4.tar.gz
mv redis-7.2.4 /usr/local/redis
cd /usr/local/redis
make MALLOC=libc
cd src
make install
- 配置文件
vi /usr/local/redis/redis.conf
注释bind 127,使其能远程访问
# bind 127.0.0.1
protected-mode 改成yes
daemonize 改成no
dir /usr/local/redis
pidfile /usr/local/redis/redis.pid
# 配置密码
requirepass foobared
requirepass xxxxx
chown -R redis:redis /usr/local/redis
chown root:redis /usr/local/redis/redis.conf
chmod 640 /usr/local/redis/redis.conf
- 内存过度提交overcommit_memory配置
vi /etc/sysctl.conf
vm.overcommit_memory = 1
sysctl -p
sysctl vm.overcommit_memory
- 系统服务vi /etc/systemd/system/redis.service
- 系统服务需要daemonize no | vi /usr/local/redis/redis.conf
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
Restart=always
RestartSec=3
User=redis
Group=redis
SyslogIdentifier=redis
LimitNOFILE=10032
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start redis
systemctl enable redis
journalctl -u redis -e
# 测试密码
cd /usr/local/redis
./src/redis-cli PING
./src/redis-cli -a '你的密码' PING
Nginx
- 用户
useradd -r -s /sbin/nologin -M nginx
- 下载
http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
https://nginx.org/en/download.html
- g++
# Rocky Linux没有C++编译器(g++),需要安装
dnf install gcc-c++
g++ --version
- pcre
# 查看是否安装
pcre-config --version
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install
- nginx
# rockylinux中glibc版本较高,需要高版本nginx,可以用nginx-1.26.3
tar zxvf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_v3_module
make
make install
/usr/local/nginx/sbin/nginx -v
vi /usr/local/nginx/conf/nginx.conf
user nginx;
chown -R nginx:nginx /usr/local/nginx/logs
- 系统服务
vi /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s TERM \$MAINPID
PrivateTmp=true
LimitNOFILE=65535
Restart=on-failure
RestartSec=10s
TimeoutStartSec=120s
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
systemctl status nginx
- 预编译
#下载
nginx-common_1.18.0-6ubuntu14.10_all.deb
nginx-core_1.18.0-6ubuntu14.10_amd64.deb
nginx_1.18.0-6ubuntu14.10_amd64.deb
#安装
sudo dpkg -i nginx-common_1.18.0-6ubuntu14.10_all.deb
# 强制安装 core(忽略依赖)
sudo dpkg -i --force-depends nginx-core_1.18.0-6ubuntu14.10_amd64.deb
# 强制安装 nginx
sudo dpkg -i --force-depends nginx_1.18.0-6ubuntu14.10_amd64.deb
# 修复依赖关系
sudo apt --fix-broken install -y