nmcli
或直接修改内核参数):nmcli
禁用 IPv6(临时生效,重启后保留)nmcli connection show
输出示例(假设连接名为 ens192
):
NAME UUID TYPE DEVICE
ens192 518fd4a1-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet ens192
nmcli connection modify ens192 ipv6.method "disabled"
nmcli connection up ens192 # 重新激活连接
vi /etc/sysconfig/network-scripts/ifcfg-ens192
在文件中添加或修改以下参数:
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
systemctl restart NetworkManager
vi /etc/default/grub
在 GRUB_CMDLINE_LINUX
行添加 ipv6.disable=1
:
GRUB_CMDLINE_LINUX="... ipv6.disable=1"
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
# 检查网卡是否无 IPv6 地址
ip a | grep inet6
# 应无输出
# 验证内核参数
cat /proc/cmdline | grep ipv6.disable
# 应显示 `ipv6.disable=1`(如果使用方法3)
nmcli
配置nmcli connection modify ens192 ipv6.method "auto"
nmcli connection up ens192
编辑 /etc/default/grub
移除 ipv6.disable=1
,重新生成 GRUB 并重启。
优先级:
兼容性:
防火墙:
firewalld
,IPv6 规则会自动失效,无需额外操作。通过上述步骤,系统将仅使用 IPv4 通信。]]>
yum
(或 dnf
)安装 MySQL 8 后,如果需要 禁用表名大小写敏感(即强制表名存储为小写),需修改配置文件并重新初始化数据目录。以下是具体步骤:vi /etc/my.cnf
或(如果存在):
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld]
段落下添加以下参数:[mysqld]
lower_case_table_names=1
参数说明:
lower_case_table_names=1
:表名存储为小写,比较时不区分大小写。- 注意:MySQL 8 仅在初始化时允许修改此参数,后续更改需重新初始化数据目录!
systemctl stop mysqld
rm -rf /var/lib/mysql/*
此操作会删除所有数据库数据,确保已备份重要数据!
mysqld --initialize --user=mysql --lower-case-table-names=1
关键点:
--initialize
:初始化数据目录。--user=mysql
:指定运行用户。--lower-case-table-names=1
:确保初始化时应用配置。
systemctl start mysqld
mysql -u root -p
(输入初始化时生成的临时密码,可通过 grep 'temporary password' /var/log/mysqld.log
查看)
SHOW VARIABLES LIKE 'lower_case_table_names';
输出应为:
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
--lower-case-table-names=1
无效/var/lib/mysql/
为空,重新执行初始化命令。检查:
cat /var/lib/mysql/auto.cnf | grep lower_case_table_names
如果存在旧配置,需彻底清理数据目录。
若启动失败,检查日志:
journalctl -u mysqld
修复权限:
chown -R mysql:mysql /var/lib/mysql
chmod 750 /var/lib/mysql
⚠️ 注意:MySQL 8 默认不允许在初始化后修改 lower_case_table_names
,因此必须通过重新初始化实现。
]]>这是最安全和推荐的做法:
创建 elasticsearch 用户和组:
groupadd elasticsearch
useradd -g elasticsearch elasticsearch
更改 Elasticsearch 目录权限:
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
以 elasticsearch 用户启动:
sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch
如果确实需要以 root 运行(仅用于测试环境):
编辑 Elasticsearch 配置文件:
vim /etc/elasticsearch/jvm.options
添加以下 JVM 参数:
-Des.insecure.allow.root=true
或者修改启动脚本:
vim /usr/share/elasticsearch/bin/elasticsearch
在文件开头添加:
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
export ES_JAVA_OPTS
创建 systemd 服务文件:
vim /etc/systemd/system/elasticsearch.service
添加以下内容:
[Unit]
Description=Elasticsearch
After=network.target
[Service]
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/share/elasticsearch/bin/elasticsearch
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
启用并启动服务:
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
如果你使用 Docker,可以这样运行:
docker run -d --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
docker.elastic.co/elasticsearch/elasticsearch:7.9.2
ulimit:可能需要增加文件描述符限制:
ulimit -n 65536
通过创建专用用户运行 Elasticsearch 是最佳实践,既能满足安全要求,又能保证服务正常运行。
]]>