首页

mongodb折腾记录

Ubuntu22服务器上要新开个基于skynet的游戏服务。装好环境后发现skynet服务报错lua连不上MongoDB。先检查了配置文件发现是端口没使用常规的27017,改了端口重启还是报错。怀疑是数据库没创建好又从测试环境mongodump弄来了数据库用mongorestore导入,还是不行。 接下来就是各种排查数据和配置,lua没有明确报错信息只提示Connect to localhost:27017 failed (no more backup host) 折腾了几个小时到下班没搞定。 今天接着来,先怀疑是mongodb的端口或者账户密码配置错误,和正式环境逐一比对配置,清空数据表测试依旧连不上。试了直接用mongosh工具查看数据库和表一切正常,用php或者Python测试连接没什么大问题,就是密码中包含了@符号在php直接用url格式连接配置的时候需要把@符号换成%40,其他一切正常。 最后怀疑是版本问题,线上正式环境使用的mongodb版本是6.0.8,我折腾的版本是6.0.20,感觉就是个小版本差异不太可能连都连补上。我继续折腾配置期间同事查了mongodb的版本差异发现6.0.20新特性有安全性方面的改进提出可能lua的MongoDB驱动太老,准备更新驱动,然后发现需要重新编译skynet于是作罢。 我到官网下载MongoDB发现6.0.x只有6.0.20可选,于是退而求其次下了5.0.x的deb安装包,卸载了服务器上的MongoDB6.0.20后直接dpkg -i mongodbxxxxx.deb安装,然后发现systemctl start mongod后服务并没有正常启动,于是用systemctl status mongod发现有报错(code=exited, status=14),于是删除了/var/lib/mongo和/var/lib/mongodb下的所有数据再重启,还是失败。然后尝试了chomod -R mongod:mongod /var/lib/mongo再重启服务,问题依然存在。 最后尝试了apt直接装指定版本终于成功,命令如下: <code> apt install -y mongodb-org=6.0.8 mongodb-org-server=6.0.8 mongodb-org-shell=6.0.8 mongodb-org-mongos=6.0.8 mongodb-org-tools=6.0.8 </code> 然后用mongosh命令登录数据库admin创建了用户和密码 <code> db.createUser({ user: "我的用户名", pwd: "我的密码", roles: [{ role: "root", db: "admin" }] }) </code> 修改了配置文件/etc/mongod.conf开启密码访问 <code> ////省略配置...... security: #开启授权认证 authorization: enabled </code> 然后systemctl restart mongod重启了mongodb
更多>>
Chrome下载地址被缓存的问题 centos7用yum命令的时候报错Peer's Certificate has expired mysql临时关闭binlog 记一次scp上传文件夹时把服务器io写爆的事故 在网页上玩红白机游戏:基于jsnes的nes模拟器