Having just installed mysql on my server, I've found that I have to set
bind-address = 0.0.0.0 in /etc/mysql/my.cnf to enable me to connect to
mysqld over the local network: leaving it at the default 127.0.0.1 causes
connection requests to be rejected.
Is there a more secure value for this parameter? I want to be able to
connect over either of two network segments, 192.168.2.0/29 and
192.168.3.0/29, as well as locally on the server box. I've tried a compound
setting in bind-address, but mysqld then refuses to start. 0.0.0.0 is the
only setting I've found so far that lets me in.
--
Rgds
Peter
--
gentoo-user@lists.gentoo.org mailing list
04-29-2008, 01:15 PM
Hamish
Network access to MySQL
On Tuesday 29 April 2008 10:51:30 Peter Humphrey wrote:
> Having just installed mysql on my server, I've found that I have to set
> bind-address = 0.0.0.0 in /etc/mysql/my.cnf to enable me to connect to
> mysqld over the local network: leaving it at the default 127.0.0.1 causes
> connection requests to be rejected.
>
Yes. because 127.0.0.1 is the address of the LOOPBACK interface. An INTERNAL
only pseudo network interface. 0.0.0.0 means that the local socket will be
bound to no specific interface, and thus will accept inbound connections TO
any IP address configured on the system.
> Is there a more secure value for this parameter? I want to be able to
> connect over either of two network segments, 192.168.2.0/29 and
> 192.168.3.0/29, as well as locally on the server box. I've tried a compound
> setting in bind-address, but mysqld then refuses to start. 0.0.0.0 is the
> only setting I've found so far that lets me in.
>
Sorry, the question doesn't make sense... The security for connecting to the
database is performed elsewhere. Either using IPTables (And specifying who
can connect), and/or userid's with passwords specified for explicit hosts
(Read up on the grant syntax in the mysql manual for details of granting
access and how to limit.
I'd recommend BOTH iptable and limited userid's myself.
Hamish.
--
gentoo-user@lists.gentoo.org mailing list
04-29-2008, 05:24 PM
kashani
Network access to MySQL
Peter Humphrey wrote:
Having just installed mysql on my server, I've found that I have to set
bind-address = 0.0.0.0 in /etc/mysql/my.cnf to enable me to connect to
mysqld over the local network: leaving it at the default 127.0.0.1 causes
connection requests to be rejected.
Is there a more secure value for this parameter? I want to be able to
connect over either of two network segments, 192.168.2.0/29 and
192.168.3.0/29, as well as locally on the server box. I've tried a compound
setting in bind-address, but mysqld then refuses to start. 0.0.0.0 is the
only setting I've found so far that lets me in.
I generally remove the bind setting so that Mysql listens on all IPs on
the box. You can then have firewall rules at your border or locally on
the box to control access to 3306. You can also set access on a per user
basis within mysql
GRANT CREATE,DELETE,INSERT,SELECT,UPDATE PRIVILEGES ON your_db.* TO
'your_user'@'localhost';
GRANT CREATE,DELETE,INSERT,SELECT,UPDATE PRIVILEGES ON your_db.* TO
'your_user'@'192.168.2.%';
and so on.
kashani
--
gentoo-user@lists.gentoo.org mailing list
04-29-2008, 09:40 PM
Mick
Network access to MySQL
On Tuesday 29 April 2008, kashani wrote:
> Peter Humphrey wrote:
> > Having just installed mysql on my server, I've found that I have to set
> > bind-address = 0.0.0.0 in /etc/mysql/my.cnf to enable me to connect to
> > mysqld over the local network: leaving it at the default 127.0.0.1 causes
> > connection requests to be rejected.
> >
> > Is there a more secure value for this parameter? I want to be able to
> > connect over either of two network segments, 192.168.2.0/29 and
> > 192.168.3.0/29, as well as locally on the server box. I've tried a
> > compound setting in bind-address, but mysqld then refuses to start.
> > 0.0.0.0 is the only setting I've found so far that lets me in.
>
> I generally remove the bind setting so that Mysql listens on all IPs on
> the box. You can then have firewall rules at your border or locally on
> the box to control access to 3306. You can also set access on a per user
> basis within mysql
>
> GRANT CREATE,DELETE,INSERT,SELECT,UPDATE PRIVILEGES ON your_db.* TO
> 'your_user'@'localhost';
> GRANT CREATE,DELETE,INSERT,SELECT,UPDATE PRIVILEGES ON your_db.* TO
> 'your_user'@'192.168.2.%';
>
> and so on.
>
> kashani
The --bind-address option works for one IP address only. If you set it to
127.0.0.1 only connections from localhost will be listened to. If you set it
to 0.0.0.0 connections from all addresses are listened to. I believe that
you can have one IP address set by using --bind-address and also have defined
a unix socket for mysqld to listen to. The unix socket can be set up for
local connections (you need to allow fs access for the unix socket to the
mysql client user of course, otherwise the socket will not be accessible).
As others have mentioned the firewall adds security by restricting inbound
source addresses.
HTH.
--
Regards,
Mick
05-03-2008, 08:25 AM
Peter Humphrey
Network access to MySQL
On Tuesday 29 April 2008 22:40:09 Mick wrote:
> HTH.
Thanks to both of you. I'll leave the bind address unspecific.
--
Rgds
Peter
--
gentoo-user@lists.gentoo.org mailing list
01-28-2009, 03:13 PM
Peter Humphrey
Network access to mysql
Afternoon all,
I have mysql running on my workstation and on my local server, and I want to
connect as an ordinary user from the workstation to the server; I can't.
This is what happens:
$ mysql -p -h serv.ethnet
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'serv.ethnet' (111)
The same thing happens if I try as root.
I can connect locally as myself or as root on either machine and manipulate
tables in various ways. I haven't yet installed a firewall on either
machine.
I've set DEBUG=4 in /etc/conf.d/mysql on both machines, but nothing shows up
in /var/log/mysql/*; only some startup debug messages. I've run tcpdump on
the server, which shows that one packet passes in each direction, followed
immediately by a reverse lookup of the workstation being sent to the name
server. I don't know why nothing happens after the name-service request is
answered, but it seems to imply that the workstation is refusing the
request itself rather than forwarding it to the server.
I can't see anything in /etc/conf.d/mysql or in /etc/mysql/* on either
machine to restrict network access, so what have I missed?
--
Rgds
Peter
01-28-2009, 03:25 PM
AllenJB
Network access to mysql
Peter Humphrey wrote:
Afternoon all,
I have mysql running on my workstation and on my local server, and I want to
connect as an ordinary user from the workstation to the server; I can't.
This is what happens:
$ mysql -p -h serv.ethnet
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'serv.ethnet' (111)
The same thing happens if I try as root.
I can connect locally as myself or as root on either machine and manipulate
tables in various ways. I haven't yet installed a firewall on either
machine.
I've set DEBUG=4 in /etc/conf.d/mysql on both machines, but nothing shows up
in /var/log/mysql/*; only some startup debug messages. I've run tcpdump on
the server, which shows that one packet passes in each direction, followed
immediately by a reverse lookup of the workstation being sent to the name
server. I don't know why nothing happens after the name-service request is
answered, but it seems to imply that the workstation is refusing the
request itself rather than forwarding it to the server.
I can't see anything in /etc/conf.d/mysql or in /etc/mysql/* on either
machine to restrict network access, so what have I missed?
Check the bind-address setting in /etc/my.cnf - if this is 127.0.0.1
then no other machines will be able to connect to the mysql server. To
listen on all available interfaces, this setting should be "0.0.0.0" or
unset.
Also check that skip-networking is not enabled.
01-28-2009, 03:28 PM
Alejandro
Network access to mysql
2009/1/28 AllenJB <gentoo-lists@allenjb.me.uk>
Peter Humphrey wrote:
Afternoon all,
I have mysql running on my workstation and on my local server, and I want to connect as an ordinary user from the workstation to the server; I can't. This is what happens:
$ mysql -p -h serv.ethnet
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'serv.ethnet' (111)
The same thing happens if I try as root.
I can connect locally as myself or as root on either machine and manipulate tables in various ways. I haven't yet installed a firewall on either machine.
I've set DEBUG=4 in /etc/conf.d/mysql on both machines, but nothing shows up in /var/log/mysql/*; only some startup debug messages. I've run tcpdump on the server, which shows that one packet passes in each direction, followed immediately by a reverse lookup of the workstation being sent to the name server. I don't know why nothing happens after the name-service request is answered, but it seems to imply that the workstation is refusing the request itself rather than forwarding it to the server.
I can't see anything in /etc/conf.d/mysql or in /etc/mysql/* on either machine to restrict network access, so what have I missed?
Check the bind-address setting in /etc/my.cnf - if this is 127.0.0.1 then no other machines will be able to connect to the mysql server. To listen on all available interfaces, this setting should be "0.0.0.0" or unset.
Also check that skip-networking is not enabled.
Too late for me.
01-29-2009, 01:44 PM
Peter Humphrey
Network access to mysql
On Wednesday 28 January 2009 16:25:16 AllenJB wrote:
> Check the bind-address setting in /etc/my.cnf - if this is 127.0.0.1
> then no other machines will be able to connect to the mysql server. To
> listen on all available interfaces, this setting should be "0.0.0.0" or
> unset.
That was it - thanks.
I'll raise a document bug to have this added to the MySQL startup guide,
which talks gaily of connecting to various hosts, but not how to make that
possible.
> Also check that skip-networking is not enabled.
It's disabled by default, and I knew I didn't want to enable it.