If you do this like that you won't guarantee the authenticity of your message, only its integrity, as you say you want to... but then if you only need to check integrity, you would be fine with a simpler SHA256.
But FWIW, HMAC is like a wrapper around a secure hash function adding a key, so if you remove the key, you end up with a secure hash function, plus some sequin, if I dare say so.
So, I wouldn't say it is secure per se, unless I knew what problem you are trying to solve, but this way to go will provide you with integrity while using a somewhat more complicated method than usual. (Which is generally not recommended.)
EDIT to address Artegon's comment:
If you really want to use HMAC for your purpose (which is to compare a client value with a value in the server database), you can do so with a challenge-response mechanism, you can use for example the SCRAM one which will use PBKDF2 and HMAC, like you do, but in a way that guarantee that the secret is not leaked and the authenticity of the parties is assured even in case of a MITM.
Otherwise you can devise one which is weak to MITM attack by simply doing the HMAC of the challenge using the secret value as HMAC key... (But you should do so only if you know for sure your channel is secured against MITM attack thanks to public key crypto/a shared secret/etc, otherwise you have to first establish a secure channel, e.g. using your shard secret value to do so... But then you could as well use SCRAM, since it already exists and is good.)