6.7 连接密码过期的账户

MySQL 支持密码过期功能,如 密码管理中所述。如果客户端应用程序使用密码过期的帐户连接到 MySQL 用户,则客户端功能将受到限制,直到它重置帐户密码;有关详细信息,请参阅 服务器对过期密码的处理

连接器/C++ 应用程序可以使用 第 10 章连接器/C++ 连接选项中描述 的OPT_CAN_HANDLE_EXPIRED_PASSWORDS和 连接选项重置过期密码。启用 选项,并提供将密码设置为 选项值的语句: preInitOPT_CAN_HANDLE_EXPIRED_PASSWORDSALTER USERpreInit

opts["OPT_CAN_HANDLE_EXPIRED_PASSWORDS"]= true;
opts["preInit"]= sql::SQLString("ALTER USER 'user' IDENTIFIED BY 'new-pwd';");

ALTER USER语句将新密码设置为连接后的第一件事。使用这些选项连接后,应建立新密码,并且应该可以像往常一样使用会话。任何新会话都必须使用新密码,但它们不需要 OPT_CAN_HANDLE_EXPIRED_PASSWORDSpreInit选项。