[mythtv-users] Mythfrontend on Android-database access

Donald Brett dlbrett108 at yahoo.com
Mon May 16 17:20:05 UTC 2022


On 5/16/2022 9:41 AM, Donald Brett wrote:
> On 5/16/2022 5:28 AM, Stephen Worthington wrote:
>> On Mon, 16 May 2022 09:53:27 +0100, you wrote:
>>
>>> On 16/05/2022 03:14, Stephen Worthington wrote:
>>>> On Sun, 15 May 2022 13:11:27 -0500, you wrote:
>>>>
>>>>> By the way, a couple more data points; the mysql root user does 
>>>>> not have
>>>>> a password.  Also, the mythfrontend password is still mythtv, not the
>>>>> generated one (y2i1MpJ8).  When migrating the old database to the new
>>>>> machine, it seems to use the stock 'mythtv' password, so I left it 
>>>>> as-is
>>>>> (changed config.xml password).  Any other suggestions?
>>>>>
>>>>> Don
>>>> There is a big difference between
>>>>
>>>> sudo mysql
>>>>
>>>> and
>>>>
>>>> mysql -u root -p
>>>>
>>>> When mysql is run from root with no password, it has full permissions
>>>> for everything possible.  When it is run as user root with "-u root",
>>>> it only has permissions a specified in the grants for user "root".
>>>>
>>>> When you migrate a database (or restore an old one), only the
>>>> mythconverg database tables are migrated or restored by
>>>> mythconverg_restore.pl.  Users and their grants are stored in the
>>>> "mysql" database tables, and are not touched, so you have to manually
>>>> set them up again.  They must match what you have in your config.xml
>>>> files in /etc/mythtv, /home/mythtv/.mythtv and /home/<frontend
>>>> user>/.mythtv.  When I move a database, I normally copy the old
>>>> config.xml files and re-create the old users and grants, but you can
>>>> choose to use the new config.xml settings too.  But you still need to
>>>> create the users and grants.
>>>>
>>> Can I ask why the old users and grants are not migrated along with 
>>> the database? After all, these
>>> are essential metadata and having to (research and) re-input those 
>>> commands introduces possibilities
>>> for mistakes and errors.
>> My guess would be that it is way too difficult.  Access to the users
>> and grants requires MySQL/MariaDB permissions on the "mysql" database.
>> The mythconverg_backup.pl program would need to be run as root to do
>> that, or as a MySQL/MariaDB user with the special permissions
>> required.  And then which users need to be backed up and restored?
>> There would need to be options to allow the usernames to be specified
>> as there is no automated way of finding all the config.xml files you
>> are using and getting the usernames from them.  They can be on
>> different PCs and devices.  And the "create user" and "grant" commands
>> have been changing, so support would be needed for different versions
>> of MySQL and MariaDB doing things differently.  And in any case, there
>> is no way to extract the passwords from MySQL/MariaDB - the design of
>> the way they work explicitly prevents that.  So the passwords would
>> also need to be found in the config.xml files.
>>
>> The names of the backup and restore programs (mythconverg_backup.pl
>> and mythconverg_restore.pl) also strongly suggest that they are only
>> going to work on the mythconverg database, not on data stored anywhere
>> else.
>> _______________________________________________
>> 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
>
> Hmm, I don't recall creating users or grants, so assumed it was done 
> for me on another step of the install.  I used this to load the 
> previous database:
>
> sudo /usr/share/mythtv/mythconverg_restore.pl --drop_database 
> --create_database --filename 
> /home/mythtv/db_backups/mythconverg-1350-20220501093643.sql.gz
>
> Then adjusted config.xml to use the default password.
>
> Anyway, I found a workaround for the mysql "identified by" issue here:
>
> https://stackoverflow.com/questions/5555328/error-1396-hy000-operation-create-user-failed-for-jacklocalhost 
>
>
> And tried:
>
> mysql> drop user mythtv@'%';
> mysql> flush privileges;
> mysql> create user mythtv@'%' identified by 'mythtv';
> mysql> flush privileges;
> mysql> show grants for mythtv;
>
> +------------------------------------+
> | Grants for mythtv@%                |
> +------------------------------------+
> | GRANT USAGE ON *.* TO `mythtv`@`%` |
> +------------------------------------+
> 1 row in set (0.00 sec)
>
> mysql> grant all privileges on mythconverg.* to 'mythtv'@'%';
> mysql> show grants for mythtv;
>
> +---------------------------------------------------------+
> | Grants for mythtv@%                                     |
> +---------------------------------------------------------+
> | GRANT USAGE ON *.* TO `mythtv`@`%`                      |
> | GRANT ALL PRIVILEGES ON `mythconverg`.* TO `mythtv`@`%` |
> +---------------------------------------------------------+
> 2 rows in set (0.01 sec)
>
> The local fe/be still works and now the ubuntu 18.04 box (johnny) has 
> access.  But the ONN still has the same problem.  By the way, I turned 
> off the V-32 backend and turned on the ubuntu 18.04 backend (on 
> johnny).  ONN found it and asked to update the database, so I assume 
> it was able to connect the it's mysql server.  I'll  check for 
> differences between them.
>
> Don
>

Users and grants are nearly identical between the two, so I logged into 
the ONN to look for clues.  From windows powershell:

PS C:\Upgrades\platform-tools_r33.0.1-windows\platform-tools> ./ADB logcat
...long list of stuff, display scrolls until it goes to end of log, then 
I try to start mythfrontend on the ONN.  Normal startup, then fails on 
database connection, with:

05-16 11:41:47.162 10824 10858 E mfe     : 
mythdbcon.cpp:237:OpenDatabase  [DBManager2] Unable to connect to database!
05-16 11:41:47.162 10824 10858 E mfe     : 
mythdbcon.cpp:238:OpenDatabase  Driver error was [1/2058]:
05-16 11:41:47.162 10824 10858 E mfe     : QMYSQL: Unable to connect
05-16 11:41:47.162 10824 10858 E mfe     : Database error was:
05-16 11:41:47.162 10824 10858 E mfe     : Plugin caching_sha2_password 
could not be loaded: dlopen failed: library 
"/home/peter/proj/github.com/MythTV/packaging-master/android/libsinstall/lib/plugin/caching_sha2_password.so" 
not found
05-16 11:41:52.108  3734  4486 E WifiService: Permission violation - 
getConfiguredNetworks not allowed for uid=10035, 
packageName=com.google.android.tvrecommendations, 
reason=java.lang.SecurityException: Location mode is disabled for the device
05-16 11:41:52.484 10824 10858 I mfe     : 
mythcontext.cpp:887:TestDBconnection  Start up testing connections. DB 
192.168.0.184, BE , attempt 3, status dbStarted, Delay: 2000


, then repeats several times.  It looks like the latest mysql has a 
change in password encryption.  I've seen suggestion to revert it by 
adding this to /etc/mysql/mysql.conf.d/mysqld.cnf with 
"mysql_native_password" , or, updating the root user to 
"caching_sha2_password".  Not sure which way to go, suggestions?

Don


-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the mythtv-users mailing list