[mythtv-users] Remote frontend access denied

Don Brett dlbrett at zoominternet.net
Thu Nov 21 17:22:03 UTC 2019


On 11/21/2019 3:32 AM, Stephen Worthington wrote:
> On Wed, 20 Nov 2019 23:01:50 -0500, you wrote:
>
>> I had a working 18.04 Ubuntu-Mate box that worked fine; after a
>> self-induced catastrophic error, I ended up rebuilding it (fe/be box
>> with one remote frontend).  The rebuild also works pretty well, but I
>> haven't gotten the remote front-end working yet.  I haven't made any
>> changes to the remote, but I'm getting database connection errors.
>> Tried lots of things, but no luck.  Any suggestions on what to look for?
>>
>> Don
>>
>> *From the logs:*
>>
>> *Excerpts from remote box: (/var/log/mythtv/mythfrontend.log)*
>> Nov 20 12:49:34 jax mythfrontend.real: mythfrontend[2459]: E CoreContext
>> mythdbcon.cpp:239 (OpenDatabase) Driver error was [1/1045]:#012QMYSQL:
>> Unable to connect#012Database error was:#012Access denied for user
>> 'mythtv'@'jax' (using password: YES)
>>
>> Nov 20 12:49:34 jax mythfrontend.real: mythfrontend[2459]: E CoreContext
>> mythdb.cpp:646 (GetSettingOnHost) Database not open while trying to load
>> setting: backendserverport
>>
>> *Excerpts from fe/be box:**(/var/log/mysql/error.log)*
>> 2019-11-20T17:49:34.057263Z 544 [Note] Access denied for user
>> 'mythtv'@'jax' (using password: YES)
>> 2019-11-20T18:00:01.606694Z 545 [Note] Got an error reading
>> communication packets
>> 2019-11-21T00:01:41.387690Z 721 [Note] Got an error reading
>> communication packets
>> 2019-11-21T00:15:52.630339Z 156 [Note] Aborted connection 156 to db:
>> 'mythconverg' user: 'mythtv' host: 'localhost' (Got timeout reading
>> communication packets)
>>
>>
>> *Things I've checked:**
>> **
>> **/home/don/don.my.cnf*
>> secure_file_priv=/var/lib/mysql
>>
>> */home/don/.mythtv/config.xml (same as it was before rebuild)*
>> <LocalHostName>my-unique-identifier-goes-here</LocalHostName>
>>    <Database>
>>      <PingHost>1</PingHost>
>>      <Host>localhost</Host>
>>      <UserName>mythtv</UserName>
>>      <Password>mythtv</Password>
>>      <DatabaseName>mythconverg</DatabaseName>
>>      <Port>3306</Port>
>>    </Database>
>>
>> */home/mythtv/.mythtv/config.xml (symlinked to /etc/mythtv/config.xml)*
>> <Configuration>
>>    <Database>
>>      <PingHost>1</PingHost>
>>      <Host>localhost</Host>
>>      <UserName>mythtv</UserName>
>>      <Password>mythtv</Password>
>>      <DatabaseName>mythconverg</DatabaseName>
>>      <Port>3306</Port>
>>    </Database>
>>
>> */etc/mysql/mysql.conf.d/mysqld.cnf*
>> # removed 11/17/2019
>> #bind-address           = 127.0.0.1
>>
>> # trying this 11/18/2019...didn't help
>> #bind-address           = 0.0.0.0
>>
>> */etc/mysql/mysql.conf.d/mythtv.cnf*
>> [mysqld]
>> #bind-address=::
>> max_connections=100
>> #sql_mode=NO_ENGINE_SUBSTITUTION
> If you are doing external access to the database, you do need either
> "bind-address = 0.0.0.0" or "bind-address=::".  Use :: if you want
> IPv6 to work.  Make sure that all other "bind-address=" lines in all
> the MySQL/MariaDB config files are commented out.  You need to restart
> MySQL or MariaDB before it will see the change:
>
> sudo systemctl restart mysql
>   or
> sudo systemctl restart mariadb
>
> However, the first error message you are reporting is "Access denied".
> So that may mean that you have not done the right GRANT command to
> allow that user access from that location.  I think doing this on the
> backend PC should fix that problem:
>
> sudo mysql
> GRANT ALL PRIVILEGES ON mythconverg to 'mythtv'@'jax';
> FLUSH PRIVILEGES;
> exit
>
> If that does not work, or you want to allow access from all devices on
> your network, try:
>
> sudo mysql
> GRANT ALL PRIVILEGES ON mythconverg to 'mythtv'@'%';
> FLUSH PRIVILEGES;
> exit
>
> The above presumes that you have actually created the user 'mythtv'.
> If not, then you may need to do the following before the above GRANT
> commands:
>
> GRANT ALL PRIVILEGES ON mythconverg TO 'mythtv'@'localhost' IDENTIFIED
> BY 'mythtv' WITH GRANT OPTION;
>
> Then you need to make sure the config.xml file being used by the
> remote frontend has its <Host></Host> value set to the IP address or
> hostname of the backend PC.  Both the config.xml files you posted have
> it set to "localhost", which will not work for a remote frontend.
>
> Once you have database access working, you also need to ensure that
> mythbackend only starts after the network is fully up.  The default
> systemd file for mythbackend only waits for localhost to be up, and
> mythbackend then never binds to the external IP address.  If that is
> the case, just restarting mythbackend after booting is complete will
> fix that until the next reboot:
>
> sudo systemctl restart mythtv-backend
>
> If the above fixes things, then you need to create an appropriate
> systemd override file for mythbackend.  There are other threads on
> this mailing list about how to do that - it is modestly complicated so
> I do not want to repeat it here again unless you can not find the
> proper thread.  A google search for "wait-until-pingable.py" (in
> double quotes) should find it.
> _______________________________________________
> mythtv-users mailing list
> mythtv-users at mythtv.org
> http://lists.mythtv.org/mailman/listinfo/mythtv-users
> http://wiki.mythtv.org/Mailing_List_etiquette
> MythTV Forums: https://forum.mythtv.org

Did the changes for bind-address=::, no difference.  Tried granting 
privileges and got:

mysql> GRANT ALL PRIVILEGES ON mythconverg to 'mythtv'@'jax';
ERROR 1046 (3D000): No database selected
mysql>
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> GRANT ALL PRIVILEGES ON mythconverg to 'mythtv'@'jax';
ERROR 1133 (42000): Can't find any matching row in the user table
mysql>
mysql> GRANT ALL PRIVILEGES ON mythconverg TO 'mythtv'@'localhost' 
IDENTIFIED
     -> BY 'mythtv' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
mysql> GRANT ALL PRIVILEGES ON mythconverg to 'mythtv'@'%';
Query OK, 0 rows affected (0.00 sec)

Then rebooted, still no difference.

Did I use the correct database?

Checked /etc/mythtv/config.xml on the remote, it was using localhost, so 
changed to 192.168.0.177 (backend address).  No difference.

During the rebuild, I used your systemd procedure, so 
"wait-until-pingable.py" was already in place.


Still getting access denied messages from mysql:

*From /var/log/mysql/error.log (on backend)*
2019-11-21T16:46:18.681726Z 525 [Note] Access denied for user 
'mythtv'@'jax' (using password: YES)


By the way, should this be working?  It's from the remote box to the 
backend box.

don at jax:~$ sudo mysql -h192.168.0.177 -umythtv -p
Enter password:
ERROR 1045 (28000): Access denied for user 'mythtv'@'jax' (using 
password: YES)


Don



More information about the mythtv-users mailing list