操作前说明 #
在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。
原始操作记录 #
MySQL官方文档有说明,可以在~/.my.cnf处指定用户的密码。
.my.cnf的格式如下:
[client]
password="MySQL密码"
user=MySQL用户名上面的user一行可以省略,不指定user,则自动以当前Shell登录的用户身份登入mysql。
把上述代码保存到~/.my.cnf,再次输入mysql(或mysql -u 用户名),mysql-client就会自动读取当前用户的家目录下.my.cnf文件的信息,可以无密码自动登入MySQL。
cron等非交互式的程序执行mysql,可能不会自动读取~/.my.cnf,或者.my.cnf保存在其他路径或保存为其他文件名时,就需要使用--defaults-file参数手动指定该配置文件的路径了:
mysql --defaults-file=/folder1/folder2/filename -u 用户名一定要保证.my.cnf别的用户/组不能读取(chmod 400)
但是如果不想给人知道用户名和实际的密码,但是又想给人用,可以使用mysql自己带的config edit。
mysql_config_editor set --user=root --password这个时候,用户主目录下会出现一个加密了以后的.mylogin.cnf,权限600
直接查看会发现密码是加密的,调用:
mysql_config_editor print --all可以看见摘要
直接调用mysql 就可以免密码登录mysql_config_editor设置的默认服务器
如果要设置多个服务器,需要添加--login-path参数
mysql_config_editor set --login-path=dev --user=root --password --host=10.0.0.1 --port=3306
mysql_config_editor set --login-path=pro --user=root --password --host=10.0.0.2 --port=3306这样就设置了两个服务器,在连接的时候使用--login-path参数指定要连接的数据库即可
mysql --login-path=dev这种方法说不上有多安全,主要是加密以后,肉眼看不见了而已。
记得,.my.cnf 和.mylogin.cnf 一定要
chmod 600关键理解 #
这类笔记最重要的不是把命令背下来,而是弄清楚它解决的是什么问题、依赖什么环境、执行后会改变什么。以后再次遇到类似情况时,可以先根据标题判断问题方向,再对照原始命令确认是否适合当前系统版本。
如果命令中包含具体路径、网卡名、磁盘名、进程名、IP 地址、端口号、用户名称或软件版本,实际执行时都要替换成自己环境中的真实值。不要直接照抄示例里的占位内容。
验证方法 #
执行完成后不要只看命令是否返回成功,还应结合服务状态、配置文件内容、日志输出和实际访问结果一起判断。常用检查命令包括 systemctl status、journalctl -xe、ip addr、ip route、cat、grep 等。
如果验证结果和预期不一致,建议先不要继续叠加更多修改,而是回到第一步检查环境差异。很多问题并不是命令本身错误,而是当前系统版本、软件版本、路径名称或权限条件与原记录不一致。
注意事项 #
如果是在远程服务器上操作,尤其是网络、SSH、DNS、防火墙相关配置,必须提前准备控制台、VNC、快照或备份,避免因为配置错误导致无法重新连接。
对于旧文章中的命令,还要考虑软件版本变化。浏览器 flags、Linux 发行版默认配置、Python 包版本、Windows 系统设置都会随着时间调整。再次使用时,最好把这篇记录当成排查思路,而不是绝对固定的唯一答案。
小结 #
这篇记录可以作为一个快速索引:先看标题确认问题类型,再看原始命令找到核心操作,最后结合验证方法确认是否真正生效。这样既保留了早期备忘的简洁性,也能减少以后重复排查的时间。