impl#
todo: add docstring
- acore_server_bootstrap.actions.s1_configure_db.impl.run_sql(sql: str, host: str, database: Optional[str] = None, username: Optional[str] = None, password: Optional[str] = None, timeout: Optional[int] = None, path: Path = PosixPath('/home/docs/tmp.sql'))[source]#
Run a SQL statement via MySQL cli.
一个调用 MySQL cli 来运行大段 SQL 的函数. 本质上是 CLI 命令的封装
- acore_server_bootstrap.actions.s1_configure_db.impl.render_create_mysql_database_sql_in_rds_mode(database_username: str, database_password: str) str[source]#
Return the SQL statement that can create Azerothcore Database user and initial databases, and grant new user Database permission.
- acore_server_bootstrap.actions.s1_configure_db.impl.render_create_mysql_user_sql_in_rds_mode(database_username: str, database_password: str) str[source]#
Return the SQL statement that can create Azerothcore Database user and grant new Database permission (without creating the database).
- acore_server_bootstrap.actions.s1_configure_db.impl.run_create_mysql_database_sql_in_rds_mode(database_username: str, database_password: str, database_host: str, database_admin_username: Optional[str] = None, database_admin_password: Optional[str] = None)[source]#
为游戏服务器创建数据库 User 账号密码. 并创建三个空数据库.
- Parameters:
database_username – 给游戏服务器用的 DB User 账号, 默认是 acore
database_password – 给游戏服务器用的 DB User 密码
database_host – RDS Instance 的 Endpoint (不包括 port)
database_admin_username – RDS Instance 的 master username 默认是 admin 这是你创建 RDS 的时候的 admin 账号, 不是给游戏服务器用的 acore 那个.
database_admin_password – RDS Instance 的 master password 这是你创建 RDS 的时候的 admin 密码, 不是给游戏服务器用的 acore 那个.
- acore_server_bootstrap.actions.s1_configure_db.impl.run_create_mysql_user_sql_in_rds_mode(database_username: str, database_password: str, database_host: str, database_admin_username: Optional[str] = None, database_admin_password: Optional[str] = None)[source]#
更新给游戏服务器用的数据库 User 账号密码. 常用于密码更改时对已经存在的 EC2 进行重新配置.
- Parameters:
database_username – 给游戏服务器用的 DB User 账号, 默认是 acore
database_password – 给游戏服务器用的 DB User 密码
database_host – RDS Instance 的 Endpoint (不包括 port)
database_admin_username – RDS Instance 的 master username 默认是 admin 这是你创建 RDS 的时候的 admin 账号, 不是给游戏服务器用的 acore 那个.
database_admin_password – RDS Instance 的 master password 这是你创建 RDS 的时候的 admin 密码, 不是给游戏服务器用的 acore 那个.
- acore_server_bootstrap.actions.s1_configure_db.impl.render_update_realmlist_address_sql(server_public_ip: str) str[source]#
Return the SQL statement that can update the realmlist address.
- acore_server_bootstrap.actions.s1_configure_db.impl.run_update_realmlist_address_sql(server_public_ip: str, database_host: str, database_admin_username: Optional[str] = None, database_admin_password: Optional[str] = None)[source]#
更新 acore_auth.realmlist 表里面的 address 字段. 从而让登录服务器知道如何路由到游戏服务器.
- Parameters:
server_public_ip – EC2 的公网 IP 地址
database_host – RDS Instance 的 Endpoint (不包括 port)
database_admin_username – RDS Instance 的 master username 默认是 admin 这是你创建 RDS 的时候的 admin 账号, 不是给游戏服务器用的 acore 那个.
database_admin_password – RDS Instance 的 master password 这是你创建 RDS 的时候的 admin 密码, 不是给游戏服务器用的 acore 那个.
- acore_server_bootstrap.actions.s1_configure_db.impl.create_database(server: Server)[source]#
在第一次开服的时候, 游戏数据库中是没有
acore_auth,acore_characters,acore_world三个数据库的, 我们需要创建他们. 这个函数是幂等的, 也就是说如果某一个数据库已经 存在了, 那么这个函数会跳过这个数据库的创建.
- acore_server_bootstrap.actions.s1_configure_db.impl.create_user(server: Server)[source]#
游戏服务器连接数据库不是用的 Admin User (这样安全隐患太大了), 而是用我们创建的 Acore DB User. 在第一次开服的时候我们需要创建这些 User 并且给它们对应的 database 的访问权限. 并且, 如果我们修改了 configuration, 其中就包含了数据库用户名和密码, 我们同样要删掉 旧的 DB User 并重新配置. 这个任务就是做这件事的.
- acore_server_bootstrap.actions.s1_configure_db.impl.update_realmlist(server: Server)[source]#
在
acore_auth.realmlist表中我们需要设定我们的游戏服务器的 IP. 这样登录服务器鉴权成功后 才能将游戏客户端的连接导向到我们的游戏服务器. 而由于我们的 IP 地址可能在 EC2 重启后发生变化, 所以我们需要在每次重启 EC2 后更新这个表.