nysql个人记录一
两天没码运行程序突然报错“public key ……is unallow……”。
原因是url的参数设置了“useSSL=false”,把此参数改成“useSSL=true”,报错消失。
有趣的是,根据网上的资料(其实是官网的文档),说到该错误是由于“如果用户使用了sha256_passwoed认证,密码在传输过程中必须使用TLS协议保护,但是如果RSA公钥不可用,可以使用服务器提供的公钥”。
然而对于TLS协议和SSL协议我不了解,查到的大概是他们两个配套使用?还是本来就出自同一个地方?这些都不确定,但是可以肯定的是,这两个协议存在某种关系,或者简单说存在关系,否则明明说是“必须使用TLS协议”,但是参数“useSSL=false”会报错,并且改成“useSSL=true”报错消失,这两个协议具体的知识请自行了解。
而且有趣的是,原本不了解参数,所以一开始就设置“useSSL=false”,是没有报错的。
后来想到可能是url参数问题后,就做了几个测试,按顺序:
1、useSSL=true,报错消失
2、useTLS=true,没有报错(主要是想知道有没有useTLS参数)
3、useTLS=false,仍然没报错(惊喜)
4、删掉该参数,没报错(意料之中)
5、useSSL=false,没报错(惊奇并且很疑惑)
最后,我还是把这个参数删掉了,疑惑肯定是疑惑的,第一次设置“useSSL=true”成功使报错消失,但是后面无论怎么改这个参数(包括删除) ,甚至重复出现报错的“useSSL=false”这种情况,仍然没有再出现报错,这着实令我费解。
所以,记录一下,一来方便伙伴们出现同样的问题时有一个解决问题的方向,二来也求这个问题的原因以及更详细的知识。
继续加油。