mysql中sql_acl.cc文件里的一个小问题(mysql 3.23.45)

Query_log_event qinfo(thd, buff);
qinfo.q_len =
my_sprintf(buff,
(buff,"SET PASSWORD FOR \"%-.120s\"@\"%-.120s\"=\"%-.120s\"",
acl_user->user,
acl_user->host.hostname ? acl_user->host.hostname : "",
new_password));
mysql_update_log.write(thd,buff,qinfo.q_len);
mysql_bin_log.write(&qinfo);
return 0;

那个“%-.120s”是什么意思啊


红糖糍粑
浏览 893回答 2
2回答

隔江千里

应该是表示参数 也就是将acl_user->user 放在第一个 \"%-.120s\" 出现的位置 acl_user->host.hostname ? acl_user->host.hostname : "" 放在第二个,以此类推 得到  set password for 用户名@localhost = password(‘新密码’);

慕婉清6462132

my_sprintf虽然我们不清楚它怎么定义的,但是应该类似系统函数sprintf也就是提供一个字符串的模板(相当于填空题)以及若干参数,将参数填入模板的空格, 合成一个字符串。
打开App,查看更多内容
随时随地看视频慕课网APP