[mythtv-users] Ver 31 frontend cannot connect to the database

Mike Carron jmcarron at gmx.com
Mon Nov 23 06:52:01 UTC 2020


On 11/22/20 10:40 PM, Bill Meek wrote:
> On 11/23/20 12:07 AM, Mike Carron wrote:
>> On 11/22/20 8:38 PM, Bill Meek wrote:
>>> On 11/22/20 10:27 PM, Mike Carron wrote:
>>>> On 11/22/20 7:14 PM, Bill Meek wrote:
>>>>>> On 11/22/20 5:20 PM, Bill Meek wrote:
>>>>>>> On 11/22/20 6:23 PM, Mike Carron wrote:
>>>>>>>> My backend host recently failed badly enough that I was not able to
>>>>>>>> salvage anything so I replaced the hardware and installed a new Ubuntu
>>>>>>>> 20.04 and a new v31 mythtv-backend-master with xmltv.
>>>>>>>>
>>>>>>>> I then upgraded a remote frontend (Ubuntu 18.04) from MythTV 30 to 31
>>>>>>>> but that frontend will not connect to the database.
>>>>>>>>
>>>>>>>> I've checked and rechecked the frontend setup screen and everything is
>>>>>>>> correct. The config.xml files for both look like they should work. I've
>>>>>>>> tried the backend config with </host> = localhost and = 192.168.0.222
>>>>>>>> (the backend machine IP). The frontend config host is 192.168.0.222.
>>>>>>>>
>>>>>>>> I know the ip addresses are good. I can load 192.168.0.222:6544 into the
>>>>>>>> address line of the Firefox on the frontend machine and it finds the
>>>>>>>> database immediately.
>>>>>>>>
>>>>>>>> I'm no doubt missing something obvious but I can't find it. It seems
>>>>>>>> like I have worn out 2 search engines trying.
>>>>>>>>
>>>>>>>> Suggestions?
>>>>>>>>
>>>>>>>> mike
>>>>>>> On the backend's config.xml, always use localhost (or 127.0.0.1 if localhost
>>>>>>> can't be resolved). That causes a socket to be used.
>>>>>>>
>>>>>>> See if mysql is running on the backend: systemctl status mysql mysqld mariadb
>>>>>>> Probably is if the backend is running OK.
>>>>>>>
>>>>>>> One of the above ^^^ should be running. All three will work if
>>>>>>> using mariadb and the Alias= lines in the service are setup.
>>>>>>>
>>>>>>> On the frontend, the following three must work: ping 192.168.0.222,
>>>>>>> nmap --reason -p 3306 192.168.0.222 (expect a syn-ack) and then:
>>>>>>>
>>>>>>>       mysql --host=192.168.0.222 --user=mythtv --password=<from config.xml> mythconverg
>>>>> On 11/22/20 8:50 PM, Mike Carron wrote:
>>>>>> backend's config.xml uses localhost.
>>>>>>
>>>>>> status for mysql, mysqld and mariadb: active (running)
>>>>>>
>>>>>> ping 192.168.0.222 works
>>>>>>
>>>>>> nmap --reason -p 3306 192.168.0.222 produces:
>>>>>>
>>>>>> PORT     STATE  SERVICE REASON
>>>>>> 3306/tcp closed mysql   reset ttl 64
>>>>>> MAC Address: A8:5E:45:E3:5A:9F (Unknown)
>>>>>>
>>>>>> mysql --host=192.168.0.222 --user=mythtv --password=<from config.xml>
>>>>>> mythconverg produces:
>>>>>>
>>>>>> ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.222' (111)
>>>>>>
>>>>>> This looks like the problem but I have no idea how to fix it.
>>>>> See the answer from Ramesh.
>>>>>
>>>>> grep --recursive bind.address /etc/mysql
>>>>>
>>>>> My choice, which allows connections from any host
>>>>> including IPv6:
>>>>>
>>>>> $ cat /etc/mysql/mariadb.conf.d/mythtv.cnf
>>>>> [mysqld]
>>>>> bind_address=::
>>>>>
>>>>> Restart mysql for it to take affect.
>>>>>
>>>> On my backend /etc/mysql/mariadb.conf.d contains: 50-client.cnf
>>>> 50-mysql-clients.cnf  50-mysqld_safe.cnf  50-server.cnf.
>>>>
>>>> mythtv.cnf is in /etc/mysql/conf.d/,  the contents are:
>>>>
>>>> [mysqld]
>>>> bind-address=::
>>>> max_connections=100
>>>>
>>>> I restarted mysql. Nothing changed.
>>> Need to be careful here. Try this:  tail -5 /etc/mysql/my.cnf
>>>
>>> That tells you the order that the sub-directories are included in.
>>>
>>> Any instance of bind_address AFTER the one you set will override it.
>>>
>>> Do the grep above to see if there are any other bind-addresses. Don't
>>> change them, just be sure mythtv.cnf is read alphabetically after
>>> everything else.
>>>
>>> Also, "Nothing changed" isn't clear enough. Did the nmap and mysql
>>> commands fail exactly the same way. You could have moved on from
>>> a connect failure to a password problem (for example).
>>>
>> Both nmap and mysql commands fail in the frontend. Both work in the
>> backend. Here is the result of nmap:
>>
>> root at MythTVMBE:/# nmap --reason -p 3306 192.168.0.222
>> Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-22 21:57 PST
>> Nmap scan report for MythTVMBE (192.168.0.222)
>> Host is up, received localhost-response (0.000064s latency).
>>
>> PORT     STATE  SERVICE REASON
>> 3306/tcp closed mysql   reset ttl 64
>>
>> Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
>>
>> If I'm reading this correctly my problem is that port 3306 is closed.
>> Port 3306 is what the frontend is trying to talk to. How do I open it?
>> I'm not a mysql expert and I'm way too old to become one.
> Unfortunately, the bind-address solution is my best shot or at least my 1st.
>
> Lets see the command and output from this: grep --recursive bind.address /etc/mysql
>
> Then the command and output from this: tail -5 /etc/mysql/my.cnf

These commands are run on the backend:

root at MythTVMBE:/# grep --recursive bind.address /etc/mysql
/etc/mysql/mariadb.conf.d/50-server.cnf:bind-address            = 127.0.0.1
/etc/mysql/conf.d/mythtv.cnf:bind-address=::

root at MythTVMBE:/# tail -5 /etc/mysql/my.cnf
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

For what it's worth, etc/mysql/conf.d/ is where the bind address can be
found. /etc/mysql/mariadb.conf.d does not contain any bind addresses
that I could find.

mike



More information about the mythtv-users mailing list