服务器一直使用的是CentOS,所以特做一下使用备注。基于的版本是CentOS 8.0
AppStream下载元数据失败
主要参考阿里云的CentOS 镜像,设置完成后还会提示AppStream下载元数据失败
的问题,需要把整个/etc/yum.repos.d
整个目录备份,重新创建一个,再执行就好了。
1 | mv /etc/yum.repos.d /etc/yum.repos.d.backup |
VirtualBox安装
使用VirtualBox安装会存在兼容问题,6.1的版本无法运行CentOS-8.1.1911
,主要这个版本移除VBoxVGA的支持,所以只能使用6.0版本。
查看 CentOS 版本
1 | cat /etc/centos-release |
查看网络配置
1 | ip addr |
防火墙
CentOS 8 使用firewall管理防火墙
基本使用
1 | systemctl start firewalld # 启动 |
配置firewalld-cmd
查看版本
1 | firewall-cmd --version |
查看运行状态
1 | firewall-cmd --state |
添加端口
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent |
重新载入设置(添加端口后一定要重载设置)
1 | firewall-cmd --reload |
查看所有端口
1 | firewall-cmd --list-ports |
删除某一端口
1 | firewall-cmd --zone= public --remove-port=80/tcp --permanent |
安装Mysql 8.0
试了几种安装方式只有如下的可以安装
1 | yum install @mysql:8.0 -y |
启动服务以及开机启动
1 | systemctl start mysqld |
密码设置
1 | mysql_secure_installation |
远程访问,8.0跟旧版不太一样。
创建用户
1 | create user 'root'@'172.16.10.203' identified by 'password' |
赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
1 | grant all privileges on *.* to 'root'@'172.16.10.203' with grant option |
改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
1 | flush privileges; |
创建账户::create user ‘用户名’@‘访问主机’ identified by ‘密码’;
赋予权限:grant 权限列表 on 数据库 to ‘用户名’@‘访问主机’ ;
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
坑
提示密码设置简单错误
1 查看当前安全变量值
1 | mysql> SHOW VARIABLES LIKE 'validate_password%'; |
2 修改变量
1 | mysql> set global validate_password.policy=0; |
3 然后退出后再执行
1 | mysql_secure_installation |
参考
mysql版本:’for the right syntax to use near ‘identified by ‘password’ with grant option’
mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
常用命令
1 | lsof -i: 端口号 # 查看某个端口的进程 |
网络管理
主要记录虚拟机桥接模式无法连接外网的问题,主要是CentOS 8使用nmcli来管理网卡。
- 编辑文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 使用
nmcli d connect ens33
激活 - 最后使用
nmcli c reload
重启网卡服务,稍等片刻,就可以Ping通网络了。
HTTPS
目前使用Let’s Encrypt SSL的证书,这个是免费的,唯一的缺点是只有三个月期限,到期后重新申请就可以。
certbot
1 | yum install certbot |
申请通配符域名的证书,这个涉及域名验证,需要在DNS解析增加_acme-challenge
的TXT
记录。需要注意的事通配符域名外还要加上完整域名,之前的没有注意,结果直接访问完整域名时提示证书不安全。参考手动申请 Let’s Encrypt 通配符证书
1 | /bin/certbot certonly -d xxxx.com,*.xxxx.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory |
注意的是两个域名之间的逗号后面不要跟空格
到期后的,需要删除原有证书certbot delete
,重启Ngnix服务sudo systemctl restart nginx
。不删除的话,会生成新的证书目录,这样的话还需要修改Ngnix的配置文件。
1 | certbot certificates # 查看所有证书,主要是看证书是否快要过期 |