DragonFly, mysql, ipv6, and defaults

I am posting this so it can help someone else, someday.

I have a DragonFly-5.4 system.  I installed mysql56-server, and started it up.  By default, it listens on “*”, which meant it listens on a local socket and IPv6 ::1 – not 127.0.0.1.

2019-06-04 13:35:03 15833 [Note] IPv6 is available.
2019-06-04 13:35:03 15833 [Warning] Failed to reset IPV6_V6ONLY flag (error: 45). The server will listen to IPv6 addresses only.

I put bind_address=127.0.0.1 into my.cnf to get IPv4 loopback to work.   Local socket connections still worked either way.  I’m not using IPv6 on this machine, so this solution works in this situation.  I’m not sure my mysql decides to go only IPv6 based on a strange flag, but mysql is reliably unreliable.

part-by-label: an additional benefit

Remember the commit that autocreates human-readable disk device names under /dev?  (Here’s a reminder.)  It’s now in 5.4 – technically, since 5.4.2.  Anyway, it will automatically identify the root USB disk when you boot from a USB .img file, so you no longer have to guess which /dev/daX file it was – usually da8 but sometimes you got a surprise instead.

Lazy Reading for 2019/04/21

It’s bizarre links week this week.  Well, more than usual, I mean.

Lazy Reading for 2019/01/20

One advantage of having a link ‘backlog’ is that I can pick and choose a bit, to present grouped items.

Cleanly adding sysctl entries on DragonFly

If you’d like to set a particular sysctl(8), you enter it into /etc/sysctl.conf. A common mistake is to copy the command line and put “sysctl foo=bar” in sysctl.conf instead of “foo=bar”. This used to cause a warning, but it still bit people, as it would cause a long stream of error messages during boot – with no clear reason, as the kernel tried to understand the command. Now, that typo is handled automatically.

Power notes, booting notes

Two links I yoinked from conversation in EFNet #dragonflybsd: there’s a “powersave” power management page on dragonflybsd.org that for some reason wasn’t linked in the main documentation page. I fixed that, and you may want to look at it and change your mwait settings, or look at the corepower(4) module. (From ivadasz’s comments; thanks!)

There’s also an older page on DragonFly and grub2 that may be interesting to anyone looking to boot. (From aly’s comments; thanks!)

File deprecation and DragonFly upgrades

On your next DragonFly upgrade, watch the end of your ‘make upgrade’ output. You may have some deprecated files, especially if your system has been upgraded through several releases.

= You have 11 now deprecated files.
= Once you are sure that none of your third party (ports or local)
= software are still using them, rerun with REMOVE_DEPRECATED set.

The now-deprecated files will be listed just before this warning. They aren’t removed automatically in case there’s installed software still linking to them. If you are running only dports software, and are up to date with all of it, you are probably fine to remove these files:

make -DREMOVE_DEPRECATED upgrade

If you have software you compiled yourself some time ago, it may have linked to these old files. One way to search for that would be to use find to find all executable files that are in particular directories, and then use ldd to see what shared libraries are used by each executable:

find /usr/local/bin /usr/local/sbin -type f -perm +a+x -print -exec ldd {} \; 

… and then grep for the names of the deprecated files. You’ll get a bunch of “not a dynamic executable” errors when you do this because it’s a rough example I did for this post, but you can always pipe the stdout of the command to a file and review later. If you do turn up any executables linked to the deprecated files – recompile!

(If you have a better find string or strategy, please comment.)