Not sure this was the right way to fix it but what worked for me was:
ln -s /usr/local/lib/mysql/libmysqlclient.so.18 /lib/libmysqlclient.so.18
Result:
ldd /usr/local/bin/barnyard2
/usr/local/bin/barnyard2:
libmysqlclient.so.18 => /lib/libmysqlclient.so.18 (0x280d8000)
libz.so.5 => /lib/libz.so.5 (0x283e7000)
libpcap.so.7 => /lib/libpcap.so.7 (0x283f9000)
libm.so.5 => /lib/libm.so.5 (0x28427000)
libc.so.7 => /lib/libc.so.7 (0x28441000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x2854a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2863e000)
libthr.so.3 => /lib/libthr.so.3 (0x28649000)
Both snort and barnyard2 start on reboot. (The symlink persists on reboot, so barnyard2 starts normally.)
I don't know how permanent this fix is. I've always had some kind of issue with barnyard2 since pfSense v1.x. I will keep my eye on it, probably with a cron job.
Hope this helps.
Update: I also had to update the sensor.last_cid value or barnyard2 would die with a fatal error about that table and field, complaining about duplicate values in a unique primary key field? Something like that.
At first I tried a value that was 1 greater than the largest value in event.cid but that choked, and barnyard2 died again – same error, just different field value reported as duplicate.
What did work was I decided to add 10 to the highest value from event.cid to update sensor.last_cid value.
Warning: Your mileage may vary with these hackish fixes.