SourceForge Logo


Store your UNIX user accounts in MySQL

** Download Current Version: 1.5 (Sep 03 2005) **



Current Release
CVS Snapshot
Debian Packages


Sample Configs

Support Forums

September 16 2006
Bugfixes commited to CVS

I've commited a few bugfixes to CVS -- check out the ChangeLog to the left for details. I've updated the latest snapshot (also to the left) as well.  
September 03 2005
libnss-mysql 1.5 released

I've uploaded version 1.5, which simply fixes bug ID 1244484 - an inability to connect to a MySQL server on some platforms due to a default connect timeout coding bug.  
January 30 2005
libnss-mysql 1.4 released

I've uploaded version 1.4, which simply fixes the fact that libnss-mysql didn't read [client] options in my.cnf; it will also read options from the [libnss-mysql] section  
December 1 2004
New project outdates libnss-mysql

I've started a new project - Flexible Single Sign-On Solutions (FSSOS). Right now, FSSOS contains a package called Name Service Via Sockets (NSVS) which does what libnss-mysql does, but in a FAR more efficient manner. You'll seriously want to consider moving to it instead. Right now the package is classified as being in the beta stage, but all my testing has shown great stability. FSSOS will eventually contain user management scripts, PAM modules, modules for more than just MySQL, etc...
The site is at
November 13 2004
libnss-mysql version 1.3 released!

It's out! There's a number of changes, bugfixes and a couple of new features - but upgrading is seamless. Make sure to check out the ChangeLog on the left menu for the details.  
June 30 2004 switches to libnss-mysql

At the beginning of the month, the staff at SourceForge switched their systems from LDAP (nss_ldap) to MySQL (libnss-mysql) for their user database/authentication needs. Their systems (e.g. project shell servers and compile farms) are now all using libnss-mysql. There are nearly 200,000 users in the database, with (after NSCD caching) 30 queries per second hitting the MySQL servers. As of yet, there have been no libnss-mysql problems (although some MySQL server tuning was certainly necessary).
Thanks to the SF team for checking it out, working with me, and providing me a little ego boost :-)
June 14 2004
CVS Snapshots

I've added daily CVS snapshots to the menu on the left. The snapshots contain a copy of the source with all the tools (automake, autoconf, etc) already run so you don't need to worry about having those available.
Note that the current CVS tree now contains a small fix to close MySQL connections prior to process exit (see ChangeLog). I've not yet tested it for portability, however.
April 10 2004
The future ...

I've tweaked a couple things for a 1.3 release, but the 1.x series is pretty stable, and will likely not change much in the future. I would like to focus on a 2.x version that's different enough to warrant the major version change. I may also widen the scope of the project enough to warrant a new project. Check out the "Future development" thread in the Open Discussion forum on the SF site. I'd really appreciate feedback! Thanks!  
March 28 2004
libnss-mysql version 1.2 released!

This release just fixes a couple of bugs. The minimum supported MySQL version is 3.23.9. Upgrading should be painless.  
March 22 2004
1.1 Bugs

There's a known issue that's been around a while but only cropped up now due to 1.1's changes with FreeBSD. You'll find that if you use the new sample configs in 1.1 with FreeBSD, sshd won't work properly. I have a fix in CVS that's undergoing testing now. Feel free to try it and let me know if you run into problems. Thanks!  
March 06 2004
libnss-mysql 1.1 has been released!

Version 1.1's out. You can snag it with the link above the news.
Those of you using FreeBSD, please read the ChangeLog about the samples provided in previous versions. If you want true shadow support, you should reconfigure your files and database permissions according to the new samples.
November 26 2003
FreeBSD 'ls' and other programs

On November 15th, the FreeBSD cvs tree got updated such that /bin and /sbin will now contain dynamically-linked executables (instead of statically), which means dynamic NSS modules such as libnss-mysql will now be seen by programs in those directories. You can cvsup to -CURRENT or wait for 5.2-RELEASE.  
October 25 2003
RPM issues should be fixed

There was a problem where programs that linked against MySQL (e.g. apache with PHP) were having problems using the RPM and your version of MySQL was too out of sync with the one used in the RPM. This was causing "Unable to save socket info" error messages (and thus the inability to perform MySQL lookups within the affected application). I have fixed this in my test environment and have thus uploaded a new RPM (1.0-2). If you use MySQL *anywhere* else in your system and you use the RPM, you should upgrade. It should be a very easy "rpm -Fvh" type of deal.  
September 19 2003
Gentoo and Debian

libnss-mysql has been added to the official Gentoo portage tree so it can now be installed via the ebuild system. Thanks Max Kalika!
A Debian package is on the way but we're trying to resolve the name clash with the other nss-mysql package available. Thanks to Emmanuel Lacour for this work!
September 06 2003
FreeBSD ports

I'd like to thank Clement Laforet for getting libnss-mysql into the FreeBSD ports tree! If you have ports installed (and up to date) you should see libnss-mysql in /usr/ports/net. Those of you using FreeBSD may find it more useful to install from ports if you like to manage your system that way.  
July 16 2003
1.0 RPM

I updated the RPM in the files section with one built from RedHat 7.3 so that it doesn't require such a recent version of GLIBC.  
July 12 2003
1.0 Released

1.0 is out! FreeBSD 5.1+ is now supported. Solaris users MUST read the UPGRADING file. No other changes to note have been made. I'm Upgrading the project status to stable.  
July 10 2003
FreeBSD Support, continued

I've got libnss-mysql ported to FreeBSD! There are a couple minor knots I need to flatten out, testing to do, etc .. but things are looking good! FWIW, NetBSD can't be supported - it isn't capable of loading modules dynamically.  
July 02 2003
FreeBSD Support

I'm toying with the FreeBSD (5.1+) NSS implementation. I've managed to figure out the API and cobbled up a quick test module to make sure I know how it works. It doesn't look like it'll be too difficult to get FreeBSD support in here. NOTE: this is only for 5.1+! 5.1 is the first version to support dynamically-loadable NSS modules.  
June 19 2003
0.9 RPM

I've released an RPM for 0.9. It's my first time putting together a public RPM so there's bound to be issues. If there are, PLEASE let me know. It's statically compiled against MySQL 4.0.13 so you won't even need the MySQL client libraries installed on the target machine. It was built on a RedHat 7.2 system so it should work on most recent systems.  
June 18 2003
0.9 Released

I've released 0.9 today. It's primarily bugfixes. Use the links to the left to see the changes, and the link above to download.  
June 15 2003
Version 0.9/1.0

The code that handles multiple MySQL servers has always been a nightmare for me to maintain, and is the cause of another bug I'm working on fixing. As such, I'm removing multiple server / failover support for the 0.9/1.0 release. If you need the stability of multiple servers, I recommend using an HA or LB environment. You can achieve load balancing using a Linux server, I believe. I don't have a URL handy but I bet Google will turn up something for you ...  
June 15 2003
Bug notice

It's been brought to my attention that the current release (0.8) will cause hanging if anything other than simple lookup (id, getent, finger, etc) routines are used. IE you won't be able to do things like ssh, su, login, etc. This appears to be a problem with compiling against the threaded version of the mysql client libraries. I don't know why and won't bother wasting my time, as it's useless to compile against them anyway. You may either use the CVS version, or edit your makefile and change -lmysqlclient_r to -lmysqlclient (and remove -lpthread).  
June 09 2003
FreeBSD Support

With the release of FreeBSD 5.1, I can probably get libnss-mysql working. According to the release notes, it supports dynamic module loading. I'll be toying around with porting libnss-mysql now, as well as fixing the 2 known bugs (listed in the SF bug management area).  
January 25 2003
0.8 Released

I've released 0.8 today. It's again mostly a bugfix. Use the links to the left to see the changes, and the link above to download.  
January 07 2003
Documentation Update

I updated the FAQ and installation README several days ago, and I'm now working on the 'configuration' section (see menu to the left). The 'configuration' section is currently a work-in-progress, so it's not complete, missing sections, etc. I'll make a note here when the first revision is complete.  
December 22 2002
Site Update

I've finally gotten around to creating a 'real' website. There will probably be a couple of broken links until I get around to writing the text for them. If you find a broken link after a few days have passed, please let me know.  
December 14 2002
0.7a Released

I've released 0.7a. This release fixes various compiling problems some of you are having. The only change to the code involves reducing the severity of syslog notices such that your consoles won't get spammed if a server is down or something equally as critical. Upgrading from 0.5, 0.6, or 0.7 is seamless. Use the link near the top of this page to head to the downloads section.  
December 07 2002
0.7 Released

0.7 is now out. Like 0.6, it focuses on fixing bugs. This release should be nearly as stable as it gets. It's a seamless upgrade from either 0.5 or 0.6, and it's highly recommended that you upgrade.  
November 05 2002
0.6 Released

0.6 is now out. It's primarily a bugfix release. I highly recommend upgrading to it. Upgrades from 0.5 will be seamless.  
October 23 2002
0.5 Released

I've released version 0.5. This version features 'initgroups' support - meaning better groups functionality, especially on Solaris. Make sure you read the file UPGRADING if you have a previous version installed!  
October 17 2002
"initgroups" On the Way ...

I've finished up the initgroup support, and it's looking good on both Linux and Solaris. I've got more testing to do but I hope to release a new version soon. This release has two big impacts: 1) Supplemental groups in Solaris work, 2) The internal design should make it easier for me to add other NSS databases. I feel more comfortable with the CVS version, so if you'd like to try it out, great! Please note the changes that are required in order to use it. The UPGRADING file is up to date, so use that as a reference if you choose to upgrade to the CVS version. The sample configurations and database are also now up to date.  
October 04 2002
Progress Update

Despite lack of CVS activity until now, I have been working on the code. It's amidst a massive rewrite (I don't recommend using it right now) to help me support initgroups/getgrmem as well as other NSS functions I plan to implement. This will require a change to your database if you're using groups - instead of a comma-separated list of members (a la /etc/group), you'll probably need another table that creates a 'username - gid' map. This way the module can easily look up all the members for a particular group, AND look up all the groups a user is a member of - all without an expensive traversal of the entire group list. initgroups/getgrmem/etc give you the ability to make this quick inquiry. I'll be busy this coming week, so I don't expect any releases or "usable" CVS version for at least another couple of weeks...  
September 21 2002
0.4 Released

I've released 0.4. It sports enhanced Solaris support and a couple of new options. Make sure you read the file UPGRADING if you have a previous version installed!  
September 17 2002
Progress Update

I've managed to clear up the Solaris/csh issues by preventing the symbols used from leaking outside the library.. csh is now happy, as is Solaris/sparc support. No messing with the MySQL code/library is needed. I've even built a 64-bit library successfully. I've also redone a lot of the connection code so it's cleaner.. it requires a couple of minor changes to your config files. I'll be adding a few more features and release 0.4 soon.  
September 13 2002
Progress Update

I've spent the past week (doh!) tracking down a problem with Solaris 'csh' and '~username' expansion. It will either fail to work (producing connect problems in your logs) or core dump. I've traced it down to a function name clash between csh and MySQL. I've contacted the MySQL team about it. You can work around it, but it means tinkering with MySQL source. Let me know if you need info on that ....  
September 05 2002
Progress Update

Current CVS has better support for ./configure on Solaris - IE all you need to do now is just './configure' I've also fixed a bug that caused a bus error/segfault on Solaris/sparc. The library has now been tested on Solaris 8/sparc! Solaris 9 is another story :-(  
August 28 2002
0.3 Released

I've released 0.3! If you're upgrading from a CVS version, ensure that your format specifiers for getpwuid and getgrgid are '%u' and not '%s' or '%d'! If you're upgrading from 0.2, you should change '%d' to '%u'. Solaris users - read the README to avoid a memory leak!  
August 27 2002
Progress Update

I've been attacking a Solaris/MySQL bug that causes a memory leak when using *ent routines. I haven't found the root cause but I've put a bandaid around it for now. CVS has been updated and I plan to release 0.3 within a few days.  
August 22 2002
Solaris Support Update

Solaris support looks done. I should be releasing 0.3 soon once I'm comfortable with things and test it out a bit more. Feel free to nab the latest CVS and give it a shot. I need someone to test (or give me access) this on a Solaris/sparc box. I'm not sure if my code's 64-bit safe. It compiles on 64-bit platforms, but that's all I can tell you. UPDATE: Len Rose of Netsys has been kind enough to fulfill this request. Thanks, Len!  
August 20 2002
Progress Update

I'm currently working on Solaris support. I'm happy to report I've gotten getpwnam working at this point. Once I figure out how to cleanly implement all of this, I'll be releasing another version.  
August 16 2002
Sample SQL Database

I realized I never included a sample SQL database in the 0.2 release. There's one available via CVS now.  
August 16 2002
Bug Report

I'm aware of a bug where certain programs (such as 'sudo') will segfault if your groups database contains a group that has no members. It's fixed in CVS. If you upgrade from 0.2-rel, PLEASE NOTE that you must change all format specifiers to %s in your config!  
August 14 2002

I've just begun the process of putting libnss-mysql up for public display. Please bear with me as I get things together ...  

SF Menu
MySQL Manual
Solaris nsswitch

I love the fact your code allows me to specify the SQL to pass to mysql. That really made integration into my complex system easy. I can not tell you how much I appreciate this library, it is so flexible and a huge time saver for administrators. - Eric L. Blevins

< This site Copyright 2002-2004 Ben Goodwin >