记一次游戏服务器搭建

前言

由于涉及生产环境 已经将关键信息抹去
一个做游戏的老哥,最近部署了一个新的游戏服务器,买的某服务商的高防服务器,结果发现MySQL的密码加密是个大坑 (默认安装采用的是41位加密,游戏服务端强制使用16位加密)

开始

首先连上了服务器 按照常规的MySQL按照方法安装,下载,解包,编译,安装一把梭,轻车熟路,之后配置了my.cnf 做了些优化,就交给那位老哥了
正当我在想怎么改16位加密的时候,老哥和我说连不上MySQL
my.cnf正常 iptables正常 MySQL权限正常
我突然想到一件事

(我好像还没启动数据库来着……

总算是连上了,但过了一会,老哥和我说这个数据库貌似不兼容程序,需要用特殊的方法安装
老哥按照他的方法安装完毕后,我接手服务器,修改数据库加密方式
先打开my.cnf操作一波

添加了红框一行
之后使用service mysqld restart 重启MySQL服务
重启后要去更新权限组,结果…

在认真校对了多次密码后 仍然显示密码错误的报错,或许是刚才加了old_passwords的原因?
赶快跑回去 把 old_passwords 注释掉重启MySQL服务器

我问了那位老哥,他说安装后是可以使用Cli MySQL的,但是如果退出,就再也登不上Cli MySQL了
这个问题很诡异,我也没细究
老哥说,只需要回车,不用输入密码就可以登录

但这个账号啥权限都没有
正确的密码却提示没权限?那么就从这里入手
MySQL有个命令叫做 skip-grant-tables 作用是忽略权限表 用途是救库
当然 我们不是在救库 我们只需要逻辑来一个小转弯
首先停止MySQL

1
service mysqld stop

之后用MySQL的安全模式带忽略权限表启动数据库

1
mysqld_safe --user=root --skip-grant-tables


使用root权限登录

1
mysql -u root -p


权限到手

设置加密模式

更新root密码,刷新权限表(更改了加密模式)

1
2
3
use mysql
update user set password=password("Your Password") where user="Your SQL User";
flush privileges;


开启MySQL

1
service mysqld start

封面飞机:Su-30MKI 战斗机(俄罗斯)


记一次游戏服务器搭建
http://www.evec.cc/2019/01/25/GameServerBuildNote/
作者
前夕
发布于
2019年1月25日
许可协议