当前位置: 首页 > java >正文

一些常用的命令

文章目录

    • MySQL篇
    • centos安装MySQL
      • 1、安装
      • 2、修改密码
      • 3、允许远程访问
    • centos安装nginx
      • 遇到的问题:

MySQL篇

在 MySQL 中,可以使用 DESCRIBESHOW COLUMNS 命令来查看表结构:

DESCRIBE 表名;

或者:

SHOW COLUMNS FROM 表名;

查看建表语句

SHOW CREATE TABLE 表名;

centos安装MySQL

1、安装

  1. 更新系统:在进行任何安装之前,确保系统软件包是最新的。
sudo yum update -y
  1. 安装必要的工具:安装wget用于下载MySQL的存储库。
sudo yum install wget -y
  1. 下载MySQL Yum存储库包:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  1. 安装MySQL Yum存储库包:
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  1. 检查MySQL存储库是否已启用:
sudo yum repolist enabled | grep mysql
  1. 安装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检查

注意: 这种做法降低了系统的安全性,因为它允许未经验证的软件包被安装到系统中。

  1. 启动MySQL服务:
sudo systemctl start mysqld
  1. 使MySQL开机自启动:
sudo systemctl enable mysqld
  1. 获取临时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。可以通过修改密码策略来解决此问题。

在生产环境中应谨慎使用。

  1. 登录到 MySQL。

  2. 查看当前的密码策略:

    SHOW VARIABLES LIKE 'validate_password%';
    
  3. 修改策略以允许简单密码:

    SET GLOBAL validate_password.policy = LOW;
    

即使将 validate_password.policy 设置为 LOW,MySQL 仍可能有其他密码策略限制。

这意味着可能需要进一步降低密码策略要求。

除了 policy 之外,还有其他几个与密码验证相关的参数,尤其是 validate_password.lengthvalidate_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,远程访问不了

  1. 创建一个允许远程连接的用户(推荐做法)
-- 创建用户并设置密码(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;

✅ 替换 '你的密码' 为你想设置的实际密码。

  1. 允许任意 IP 连接(可选)

如果你希望允许 任何 IP 的主机连接该数据库(不建议用于生产环境),可以使用通配符 %

CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
GRANT ALL PRIVILEGES ON wms.* TO 'root'@'%';
FLUSH PRIVILEGES;
  1. 确认是否已添加成功

再次执行:

SELECT User, Host FROM mysql.user;

centos安装nginx

  1. 在安装新的软件之前,先更新系统软件包:
sudo yum update -y
  1. Nginx 通常可以从 EPEL(Extra Packages for Enterprise Linux)仓库中获得。

    如果系统还没有启用 EPEL,可以用以下命令来安装:

sudo yum install epel-release -y
  1. 使用 yum 来安装 Nginx:
sudo yum install nginx -y
  1. 安装完成后,启动 Nginx 服务:
sudo systemctl start nginx
  1. 为了确保 Nginx 在系统启动时自动启动,运行以下命令:
sudo systemctl enable nginx
  1. 如果防火墙开启了,需要允许 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

可以使用文本编辑器(如 vivimnano)来打开和编辑这个配置文件。

  • 打开配置文件:
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 的限制导致的问题。


✅ 永久修复 :

  1. 给目录打上正确的 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)读取的内容目录。

  1. 永久保留 SELinux 标签(可选)

上面的 chcon 命令只是临时生效。

如果希望重启后也保持这个设置,可以使用 semanage

sudo semanage fcontext -a -t httpd_sys_content_t "/data/wms/frontend/pc(/.*)?"
sudo restorecon -Rv /data/wms/frontend/pc
http://www.xdnf.cn/news/10286.html

相关文章:

  • 1.JS逆向简介
  • JSR 303(即 Bean Validation)是一个通过​​注解在 Java Bean 上定义和执行验证规则​​的规范
  • 704SJBH蓝天影院订票网站的设计
  • 极智项目 | 多模态大模型推理平台-Streamlit版(支持Qwen2.5/InternVL3/KimiVL三大模型)
  • b. 组合数
  • 第3节 Node.js 创建第一个应用
  • 六.MySQL增删查改
  • JWT 入门
  • 利用nginx完成iframe请求的身份认证
  • 【NLP 78、手搓Transformer模型结构】
  • Namespace 命名空间的使用
  • (7)-Fiddler抓包-Fiddler状态面板-QuickExec命令行
  • 项目日记 -Qt音乐播放器 -搜索模块
  • 如何手搓扫雷(待扩展)
  • pytest中的元类思想与实战应用
  • C++基础算法————贪心
  • Kafka 如何保证不重复消费
  • Linux搭建DNS服务器
  • BLE协议全景图:从0开始理解低功耗蓝牙
  • 堆与堆排序及 Top-K 问题解析:从原理到实践
  • 玩客云WS1608控制LED灯的颜色
  • 光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
  • C 语言栈实现详解:从原理到动态扩容与工程化应用(含顺序/链式对比、函数调用栈、表达式求值等)
  • python连接邮箱的协议选择
  • C语言结构体的别名与创建结构体变量
  • jetpack compose 界面刷新的几种方式 如何避免无效的界面刷新
  • Remote Sensing投稿记录(投稿邮箱写错、申请大修延期...)风雨波折投稿路
  • Adobe Acrobat 9.1.2 Pro (install)
  • 电路图识图基础知识-常用仪表识图及接线(九)
  • 特征图可视化代码