How To install MySQL on Pfsense 2.4.5-RELEASE-p1
I know that this is a repetitive questioning " How to install Mysql on pfsense ?" I need to make Freeradius with mysql as database. Thank you
pfSense is a firewall, not a database server. You don't install MySQL on pfSense, you install it on another server and then have FreeRADIUS connect to that server.
ontzuevanhussen last edited by ontzuevanhussen
@jimp Ok, thank you. But where I can find tutorial about that? Please help
Gertjan last edited by
Back then, an ordinary windows PC could do the job.
Look for WampServer or EasyPHP. These have the huge advantage that all is in one place, and you could even install the PHP project "phpmyadmin" as a CMS on that web server, so you can 'admin' your databases.
Just keep in mind that the MySQL server used by these projects will be bound to 127.0.0.1 which means it can't accpet connection from other devices on your LAN network.
A small "my.ini" modification will be needed. This question is in Google's top 100 most asked questions on the Internet, since 1995. Check also the Windows firewall to open the MySQL TCP port. And that's about it.
Have a VM host on your PC : consider running your MySQL server in a VM. You could take one of the classic OS's like Debian and make it a MySQL / web server. That one is in Google's top 10 most ever asked questions / answered list. It's considered to be a no brainer these days.
The official Microsoft Window servers editions like Windows 2008, 2016 etc all have MySQL, sorry : MSSQL - servers aviable. Some of them are free.
If you have a "smart" NAS in your network, like, for example, a Synology diskstation, you could install a MySQL server package on your NAS. That's what I'm using. It's not a performance beast, but it does nicely what it was asked to do.
You have a dedicated server, VPS or cloud thing running some where on the net ?, You can use that one.
You have a smart phone ? Now it's your chance to have it doing something usefull : The MySQL app probably exists ;)
Btw : most of the time, you won't be running MySQL (the onwer today is ... SUN , No. Orcale !) and isn't freeware any more. So, the project was forked, and now everybody shifts to "MariaDB", which is (should be) a MySQL 100 % clone.
Note : when you install packages like FreeRadius on pfSense, you will also install the MyQL client software, not to be confounded with the server part.
Btw : "it can be done" : installing the FreeBSD package MySQL-server on pfSense.
The knowledge needed to set it up and correct / move the installed files is a pure waste of time.
A pfSense update could break MySQL server- but you'll learn how to repair that.
A MySQL server update could break pfSense - but you'll learn how to repair that.
It is really advisable to do what everybody else does. The main advantage is : you'll find examples and support easily.
@Gertjan Yes, I have VPS on digitalocean with ubuntu server 18.04.4 LTS
sudo apt install mysql-server
and you enter in the world of 'maintaining a real database'.
When everything is set up correctly : check :
That your VPS - mysql server port (default) 3306 is protected with a firewall rule that accepts traffic from your WAN IP pfSense only. When you instal mysql server on Ubuntu, by default, it will be bound to 127.0.0.1 - or maybe even only a local socket.
mysql server ports should never be exposed to "the Internet".
Consider also using the SSL version of the traffic, not the "all clear standard protocol" (traffic between myslsql-client running on pfSEnse and mysql-server running on your VPS) because your using 'public roads' (the Internet) for interconnecting 'local only' services.
Anyway : there a million or so tutos on the net about how to set it up.
@Gertjan Already open port on my VPS,
And this my database for FreeRADIUS server:
This is on my pfSense:
All my steps is correct? What is the next step? Please help. Thank you
@Gertjan This is my System Logs
First image : That's a click-interface. I don't understand.
I use the universal language :
netstat -naptul | grep '3306'
That one works for decades now.
=> Although : check firewall is needed. Again : never ever leave a MySQL server port open on the net, or you will loose your entire VPS server "very soon".
Second image : phpmyadmin. Nice. More classic isn't possible.
Third image :
Nothing is filled in yet.
Shake your head, and the info will fall out, onto the keyboard, on the screen.
I could even fill it in for you, except the password for the MySQL user that accesses the database 'radius'. That one is in your head only.
Last image : I don't get it.
You do not have any authentication credentials filled in - and you are surprised the FreeRadius package can't connect to 'the server' ?
When you connect to your mail server, you need to have it's address like IP or host adress, login code, password, port number etc - right ? here, it's the very same thing.
Btw : My settings are very identical :
@Gertjan I use mariadb:
@Gertjan my ufw status on VPS :
@Gertjan This is my pfSense SQL configuration:
@Gertjan This my System logs on pfSense:
@Gertjan I have create user and allow from remote access my database:
First image :
Doesn't that ring a bell ?
A service that is listening on address 127.0.0.1 can only be reached by the system itself. That's the defintion of localhost or 127.0.0.1.
Everybody else, locally on a LAN ,and the Internet : negative.
You have to listen (add) to address "0.0.0.0" which means all available IPv4 addresses.
This will include the one you masked here :
You should have a :
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13538/mysqld
and of course, please, limit the access to this port with a firewall rule, so it accepts only traffic from your pfSense.
If not, "you get hacked in no time", because the MySQL traffic is non intended to be exposed to the entire Internet.
I'll leave it up to you to find the instruction to be placed into /etc/my.cnf so the mysql server daemon listens to 'everything'.
ontzuevanhussen last edited by ontzuevanhussen
@Gertjan Ok now it works well.
but table nas, radacct, radcheck, radgroupcheck, radgroupreply, radreply, and radusergroup is no data. why?
When you enable all "SQL" options :
only two tables get filled in with data from the Freeradius process :
radpostauth and radacct.
The radcheck, radgroupcheck should by filled in by you, using phpmyadmin.
Their content can not be modified from within pfSense.
As you have figured out : the users and passsword could have been placed also in a database table, but pfSense uses us a file on disk for this ( PackageFreeRADIUS > Users > Users )
The Freeradius package only exposes a (very) small part of all possible FreeRadius possibilities.
Most option are hard coded, and can't be changed using the pfSEnse GUI.
To get the idea, see this file : /usr/local/etc/raddb/sites-enabled/default and the entire directory /usr/local/etc/raddb/ (all files and folders).
What these tables do, how to fill them in, etc, there is only one way to find that out : https://freeradius.org/documentation/
Remember : MySQL (MariadDB) is actually doing nothing special. It's just the scratch pad area of FreeRadius.
"FreeRadius" is a complex thing.
@Gertjan Ok, I try to insert table Radcheck and radgroupcheck, like this:
Is that true? Can you help me again how to insert this table..
Gertjan last edited by
To have FreeRadius use all the MySQL database tables, you have to modify /usr/local/etc/raddb/sites-enabled/default - and probably other files as well - which means you have to modify pfSense itself.
This means thorough FreeRadius knowledge and a good understanding about how pfSense makes the set up files.
If that was the case, you wouldn't ask question, you were just doing it.
This post is deleted!