一些常用的命令
文章目录
- MySQL篇
- centos安装MySQL
- 1、安装
- 2、修改密码
- 3、允许远程访问
- centos安装nginx
- 遇到的问题:
MySQL篇
在 MySQL 中,可以使用 DESCRIBE
或 SHOW COLUMNS
命令来查看表结构:
DESCRIBE 表名;
或者:
SHOW COLUMNS FROM 表名;
查看建表语句
SHOW CREATE TABLE 表名;
centos安装MySQL
1、安装
- 更新系统:在进行任何安装之前,确保系统软件包是最新的。
sudo yum update -y
- 安装必要的工具:安装
wget
用于下载MySQL的存储库。
sudo yum install wget -y
- 下载MySQL Yum存储库包:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 安装MySQL Yum存储库包:
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
- 检查MySQL存储库是否已启用:
sudo yum repolist enabled | grep mysql
- 安装MySQL服务器:
sudo yum install mysql-community-server -y
这里可能会报错:源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包,
可以将秘钥替换成最新的 或者 直接禁用掉GPG检查
-
替换为最新的 GPG 密钥
这是较为推荐的做法,因为它确保了你仍然能够验证软件包的完整性和来源的真实性,从而降低安全风险。
首先,移除现有的 MySQL GPG 密钥(如果已存在):
sudo rpm -e --noscripts gpg-pubkey-<密钥ID>
<密钥ID>
是想要移除的密钥的标识符,可以通过 rpm -qa | grep mysql
查找相关密钥。
然后,导入最新的 MySQL GPG 公钥:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
尝试再次运行 yum install
命令。
-
禁用 GPG 检查
直接禁用 GPG 检查虽然可以绕过这个问题,但这样做会削弱系统的安全性,因为这意味着你将不再验证从仓库下载的软件包的真实性和完整性。因此,除非绝对必要,并且你完全信任该源,否则不建议采用这种方法。
可以通过修改 YUM 配置文件来实现:
找到 MySQL 的
.repo
文件(通常位于/etc/yum.repos.d/
目录下),并编辑它以禁用 GPG 检查:
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el7/$basearch/
enabled=1
gpgcheck=0 # 设置为0以禁用GPG检查
注意: 这种做法降低了系统的安全性,因为它允许未经验证的软件包被安装到系统中。
- 启动MySQL服务:
sudo systemctl start mysqld
- 使MySQL开机自启动:
sudo systemctl enable mysqld
-
获取临时root密码:
安装过程中,MySQL会为root用户生成一个临时密码。可以通过以下命令找到这个密码:
sudo grep 'temporary password' /var/log/mysqld.log
2、修改密码
使用临时密码登录到 MySQL:
mysql -u root -p
在提示输入密码时,输入临时密码 SApyEp6HrK;V
。
登录后,修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
完成密码修改后,刷新权限以确保所有更改立即生效:
FLUSH PRIVILEGES;
修改完成后,可以输入 exit
退出 MySQL 命令行界面:
MySQL 通常有密码策略以确保密码的安全性。系统不允许使用过于简单的密码如 123456
。可以通过修改密码策略来解决此问题。
在生产环境中应谨慎使用。
-
登录到 MySQL。
-
查看当前的密码策略:
SHOW VARIABLES LIKE 'validate_password%';
-
修改策略以允许简单密码:
SET GLOBAL validate_password.policy = LOW;
即使将 validate_password.policy
设置为 LOW
,MySQL 仍可能有其他密码策略限制。
这意味着可能需要进一步降低密码策略要求。
除了 policy
之外,还有其他几个与密码验证相关的参数,尤其是 validate_password.length
和 validate_password.mixed_case_count
等。
可以通过以下命令查看当前设置:
SHOW VARIABLES LIKE 'validate_password%';
修改其他设置
- 设置最小密码长度:如果
validate_password.length
的值较高,则需要降低它。例如:
SET GLOBAL validate_password.length = 6;
- 设置混合大小写要求:如果系统要求密码中包含大写和小写字母,降低这些要求:
SET GLOBAL validate_password.mixed_case_count = 0;
- 设置特殊字符要求:如果系统要求密码中包含特殊字符,降低这些要求:
SET GLOBAL validate_password.special_char_count = 0;
- 设置数字要求:如果系统要求密码中包含数字,降低这些要求:
SET GLOBAL validate_password.number_count = 0;
在调整这些设置后,尝试再次更改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
重启mysql :
sudo systemctl restart mysql
执行初始化脚本或者升级脚本:
mysql --force -h 127.0.0.1 -P 3306 -u root -p123456 --default-character-set=utf8 wms < /data/mysql/WMSDEV_20250527.sql
3、允许远程访问
查看当前用户,主机授权
SELECT User, Host FROM mysql.user;
可以看到:
+------------------+-----------+
| User | Host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
这就意味着只能从本机访问mysql,远程访问不了
- 创建一个允许远程连接的用户(推荐做法)
-- 创建用户并设置密码(MySQL 8.0 推荐使用 mysql_native_password 插件以提高兼容性)
CREATE USER 'root'@'10.56.1.26' IDENTIFIED WITH mysql_native_password BY '你的密码';-- 授权所有权限到 wms 数据库
GRANT ALL PRIVILEGES ON wms.* TO 'root'@'10.56.1.26';-- 刷新权限
FLUSH PRIVILEGES;
✅ 替换
'你的密码'
为你想设置的实际密码。
- 允许任意 IP 连接(可选)
如果你希望允许 任何 IP 的主机连接该数据库(不建议用于生产环境),可以使用通配符 %
:
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
GRANT ALL PRIVILEGES ON wms.* TO 'root'@'%';
FLUSH PRIVILEGES;
- 确认是否已添加成功
再次执行:
SELECT User, Host FROM mysql.user;
centos安装nginx
- 在安装新的软件之前,先更新系统软件包:
sudo yum update -y
-
Nginx 通常可以从 EPEL(Extra Packages for Enterprise Linux)仓库中获得。
如果系统还没有启用 EPEL,可以用以下命令来安装:
sudo yum install epel-release -y
- 使用
yum
来安装 Nginx:
sudo yum install nginx -y
- 安装完成后,启动 Nginx 服务:
sudo systemctl start nginx
- 为了确保 Nginx 在系统启动时自动启动,运行以下命令:
sudo systemctl enable nginx
- 如果防火墙开启了,需要允许 HTTP 和 HTTPS 流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在 CentOS 上,Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf
。
可以使用文本编辑器(如 vi
、vim
或 nano
)来打开和编辑这个配置文件。
- 打开配置文件:
sudo vi /etc/nginx/nginx.conf
-
进入编辑模式:按下
i
键进入插入模式,可以开始编辑文件内容。 -
保存更改并退出:编辑完成后,按
Esc
键退出插入模式,输入:wq
并按回车保存并退出。
编辑这些文件时,需要确保语法正确,可以通过以下命令测试配置:
sudo nginx -t
如果输出显示配置文件语法正确,可以重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
遇到的问题:
nginx安装成功并配置完成后访问不到资源。
检查端口是否被监听
netstat -tuln | grep 9999
查看当前区域允许的服务/端口:
firewall-cmd --list-all
添加并重载:
sudo firewall-cmd --permanent --add-port=9999/tcp
sudo firewall-cmd --reload
查看目录权限:
ls -ld /data/wms/frontend/pc
设置正确权限:-R 参数作用是递归下面的子文件夹同步修改权限
sudo chown -R nginx:nginx /data/wms/frontend/pc
sudo chmod -R 755 /data/wms/frontend/
nginx启动提示“Permission denied”,这非常典型地出现在 启用了 SELinux 的系统中(如 CentOS/RHEL)。
✅ 临时测试是否为 SELinux 导致
1️⃣ 查看 SELinux 状态
getenforce
输出如果是:
Enforcing
说明 SELinux 正在阻止某些访问。
2️⃣ 临时禁用 SELinux(仅用于测试)
sudo setenforce 0
然后再次访问页面:
http://10.56.1.26:9999/
如果此时页面正常显示,说明就是 SELinux 的限制导致的问题。
✅ 永久修复 :
- 给目录打上正确的 SELinux 标签
可以不关闭 SELinux,而是给网页目录设置合适的标签,使其允许 Nginx 访问。
sudo chcon -R -t httpd_sys_content_t /data/wms/frontend/pc
📌 解释:
chcon
:change context,修改文件的安全上下文。-t httpd_sys_content_t
:表示这是一个供 HTTP 服务(Nginx/Apache)读取的内容目录。
- 永久保留 SELinux 标签(可选)
上面的 chcon
命令只是临时生效。
如果希望重启后也保持这个设置,可以使用 semanage
:
sudo semanage fcontext -a -t httpd_sys_content_t "/data/wms/frontend/pc(/.*)?"
sudo restorecon -Rv /data/wms/frontend/pc