配置mysql初始用户和密码有哪些技巧

那天,我在服务器前面调试MySQL,突然发现登录提示直接显示root,这让我心头一跳。
我很快使用 sudogrep 'temporarypassword' /var/log/mysqld.log 找到了一个令人困惑的密码,并在键盘上快速输入 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass!2 3 ' 。
更改后,validate_password 插件立即弹出并询问我密码强度不够,所以我必须再添加一个波浪号。
当时我看到user表中还有root@%的记录,于是我DROP USER 'root'@'%';表演完之后,我感觉舒服多了。

创建管理员用户的时候,本来想用GRANT ALL ON,但是想起运维总监老王提到的“最小化权限”的例子,所以改成了GRANT SELECT, UPDATE, INSERT ON。
到'admin'@'localhost'; FLUSH PRIVILEGES之后,我发现其他DBA看不到这个权限变化,所以我不得不暂时用root刷新一下。

等等,还有一件事。
老张上次使用root登录时,安全审核让他大吃一惊,说他居然删除了root@'1 2 7 .0.0.1 ',导致系统维护时无法登录本机。
看来Host参数不能只考虑localhost。

群晖内通过Docker安装MySQL5.7.34, 远程连接很方便

老实说,我使用 Docker 安装 MySQL 5 .7 .3 4 来远程连接 Synology。
去年的一天,我帮邻居老王做了这件事。
整个过程相当顺利,但也有一些陷阱需要注意。
以我的 DS9 2 3 + 为例。

第一步是清理环境。
打开 FileStation,在 Docker 目录中手动创建一个名为“mysql-data”的文件夹。
这一点尤其重要,因为如果直接使用默认的 Docker 系统卷,系统关闭后所有数据都会丢失。
我将此文件夹的权限设置为“Everyone”,因为它仅供我自己使用。
后来我发现这可以做得更详细,例如将来宾用户更改为只读访问权限。

有趣的是 Docker 安装步骤。
在软件包中心找到Docker,别忘了选择社区版本。
商业版本与某些版本的 DSM 会存在兼容性问题。
安装成功后,需要去注册表找到MySQL官方镜像。
现在你可以直接搜索mysql:5 .7 .3 4 ,但是这里有一个小插曲——如果你无法连接到中国的镜像,你必须改变源,例如使用阿里云仓库。
然后我尝试下载了3 次成功,但是都显示超时。
最后我去日本网站找到了。

启动容器时最关键的参数必须正确设置。
批量安装是强制选项。
我几乎完成了返回路径并将 DSM syslog 加载到 MySQL 中。
幸亏我及时发现并删除了。
端口映射我选择了6 03 3 3 3 06 可能默认被Synology占用。
无需更改 HTTPS 端口。
默认值为 4 4 3 您不应在环境变量中为 MYSQL_ROOT_PASSWORD 指定简单密码。
我用手填了数字“1 2 3 ”。
结果,远程连接直接认证失败。
我花了很长时间才意识到这个教训太深刻了。
现在我使用随机代码生成器来更改密码。

检查连接时有一个细节需要注意。
在连接 Navicat 时,IP 地址输入 Synology 的静态 IP,端口输入您设置的分配端口(例如 6 03 3 ),用户名是 root,密码是您刚刚设置的 root 密码。
如果无法连接,请先检查您的防火墙。
我当时忘记打开端口了。
Synology 自带的防火墙默认处于禁用状态,但必须手动启用外部网络访问。

最后,给大家一点建议。
做备份时不要使用mysqldump,直接将data文件夹复制到容器中即可,比路由快很多。
我通常将数据文件夹连接到外部备份驱动器,并使用脚本定期同步它。
恢复也很简单,只需用容器中的数据文件夹覆盖备份磁盘上的数据文件夹即可。
但需要注意的是,由于版本问题,将5 .7 数据恢复到新安装的5 .7 容器时有时会出现警告,但原则上数据是可用的。

其实这个过程并不难,但是每个环节都需要小心,尤其是权限和端口的设置。
如果出了问题,改变它就会很麻烦。
我给老王安装后,他用WampServer直接连接Windows,说比以前处理虚拟机方便多了。