MySQL unable to bind

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

MySQL unable to bind

Federico Giannici
We upgraded MySQL server from 4.1 to 5.0 in 3 servers. For various
reasons (the most important is strict control of the versions) we always
(since a lot of years) compiled the program from the sources.

No problem at all with 2 of the servers, but we are unable to start the
new server on the third PC, it always says that the address is already
in use! Here is the exact error:

090830 10:08:16 [ERROR] Can't start server: Bind on TCP/IP port: Address
already in use
090830 10:08:16 [ERROR] Do you already have another mysqld server
running on port: 3306 ?

Obviously there is no other mysql server running! We stop it before
installing the new version. Moreover, if we reinstall the 4.1 version it
starts without any problem. I tried it tens of times!

We use the exactly the same compile options on the three servers. Almost
anything is the same: inetd.conf, login.conf, master.passwd mysql line,
group, filesystem permissions on the logs, run and data directory...

Today I have done some new experiments and found that the new server
starts correctly if we let it run as root ("user = root")!
But obviously I don't want to let it run as root...

So, the question is: what could make a normal (non root) user be unable
to "bind" to a port that root user can bind?

As the same server works on the other two PCs, there must be some subtle
difference in this PC, but I really cannot find what!
Anybody have any suggestion?

Thanks.

Reply | Threaded
Open this post in threaded view
|

Re: MySQL unable to bind

patrick keshishian
On Sun, Aug 30, 2009 at 3:03 AM, Federico Giannici<[hidden email]> wrote:
> We upgraded MySQL server from 4.1 to 5.0 in 3 servers. For various reasons
> (the most important is strict control of the versions) we always (since a
> lot of years) compiled the program from the sources.

A few questions that would pop up are:

1. Are all three servers running OpenBSD?
2. If so, are they running the same version of OpenBSD?
3. When you say you "compiled the program from sources" do you mean
you are using ports tree or do you really mean sources, as in download
the sources manually, untar it and configure, make, etc?


> No problem at all with 2 of the servers, but we are unable to start the new
> server on the third PC, it always says that the address is already in use!
> Here is the exact error:
>
> 090830 10:08:16 [ERROR] Can't start server: Bind on TCP/IP port: Address
> already in use
> 090830 10:08:16 [ERROR] Do you already have another mysqld server running on
> port: 3306 ?

netstat(1) and fstat(1) would be handy to see if any process is in
fact using that port and which process it is. Though, the fact you are
able to start the server as root user suggests there is something else
wrong and this error message is erroneous.

--patrick


> Obviously there is no other mysql server running! We stop it before
> installing the new version. Moreover, if we reinstall the 4.1 version it
> starts without any problem. I tried it tens of times!
>
> We use the exactly the same compile options on the three servers. Almost
> anything is the same: inetd.conf, login.conf, master.passwd mysql line,
> group, filesystem permissions on the logs, run and data directory...
>
> Today I have done some new experiments and found that the new server starts
> correctly if we let it run as root ("user = root")!
> But obviously I don't want to let it run as root...
>
> So, the question is: what could make a normal (non root) user be unable to
> "bind" to a port that root user can bind?
>
> As the same server works on the other two PCs, there must be some subtle
> difference in this PC, but I really cannot find what!
> Anybody have any suggestion?
>
> Thanks.

Reply | Threaded
Open this post in threaded view
|

Re: MySQL unable to bind

Federico Giannici
patrick keshishian wrote:
> On Sun, Aug 30, 2009 at 3:03 AM, Federico Giannici<[hidden email]> wrote:
>> We upgraded MySQL server from 4.1 to 5.0 in 3 servers. For various reasons
>> (the most important is strict control of the versions) we always (since a
>> lot of years) compiled the program from the sources.
>
> A few questions that would pop up are:
>
> 1. Are all three servers running OpenBSD?

Yes.

> 2. If so, are they running the same version of OpenBSD?

Yes, same architecture and version.

> 3. When you say you "compiled the program from sources" do you mean
> you are using ports tree or do you really mean sources, as in download
> the sources manually, untar it and configure, make, etc?

 From sources, untar, configure (inspired from the ports parameters),
make, etc...

>> No problem at all with 2 of the servers, but we are unable to start the new
>> server on the third PC, it always says that the address is already in use!
>> Here is the exact error:
>>
>> 090830 10:08:16 [ERROR] Can't start server: Bind on TCP/IP port: Address
>> already in use
>> 090830 10:08:16 [ERROR] Do you already have another mysqld server running on
>> port: 3306 ?
>
> netstat(1) and fstat(1) would be handy to see if any process is in
> fact using that port and which process it is. Though, the fact you are
> able to start the server as root user suggests there is something else
> wrong and this error message is erroneous.

Yes, that is what I said. There must be some kind of subtle permission
problem. But I cannot find what...

Bye.


> --patrick
>
>
>> Obviously there is no other mysql server running! We stop it before
>> installing the new version. Moreover, if we reinstall the 4.1 version it
>> starts without any problem. I tried it tens of times!
>>
>> We use the exactly the same compile options on the three servers. Almost
>> anything is the same: inetd.conf, login.conf, master.passwd mysql line,
>> group, filesystem permissions on the logs, run and data directory...
>>
>> Today I have done some new experiments and found that the new server starts
>> correctly if we let it run as root ("user = root")!
>> But obviously I don't want to let it run as root...
>>
>> So, the question is: what could make a normal (non root) user be unable to
>> "bind" to a port that root user can bind?
>>
>> As the same server works on the other two PCs, there must be some subtle
>> difference in this PC, but I really cannot find what!
>> Anybody have any suggestion?
>>
>> Thanks.