Версия пакета: libmysqlclient21-8.0.30-alt1.1 Шаги воспроизведения: # apt-get install python-module-PyQt4 libqt4-sql-mysql libmysqlclient21 Создать и запустить скрипт: $ cat > test.py <<EOF import sys from PyQt4 import QtGui, QtCore, QtSql appcore = QtCore.QCoreApplication(sys.argv) db = QtSql.QSqlDatabase.addDatabase('QMYSQL') EOF $ python2 test.py Получаемый результат: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QMYSQL3 QMYSQL Примечание: Ошибка не воспроизводится, если откатить libmysqlclient21 до версии 8.0.20-alt2
Попробуйте с build#316279
(Ответ для Sergey V Turchin на комментарий #1) > Попробуйте с build#316279 $ python2 test.py QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: Не помогло и "available drivers: " стало пустым.
(Ответ для Alexander Makeenkov на комментарий #2) > Не помогло и "available drivers: " стало пустым. На чистом Qt4 и до обновления из build#316279 и после список драйверов не изменился. Возможно, дело в PyQt4.
(Ответ для Sergey V Turchin на комментарий #3) > На чистом Qt4 и до обновления из build#316279 и после список драйверов не > изменился. Т.е. QMYSQL загружается корректно. Если попытаться использовать несуществующий драйвер, ругается: QSqlDatabase: UNKNOWNSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL3 QMYSQL
Есть идеи, как чинить регрессию? Пока приходится откатывать libmysqlclient21.
добавил в build#316279 пересборку python-module-PyQt4, авось поможет.
(Ответ для Sergey V Turchin на комментарий #6) > добавил в build#316279 пересборку python-module-PyQt4, авось поможет. Не, не помогло.
Может, посмотреть, какие изменения были в libmysqlclient21 и откатить что-то из этого? Вдруг там что-то тривиальное?
Актуально для libmysqlclient21-8.0.35-alt1.1
Столкнулся с этой проблемой, нашёл в ltrace сообщение "cannot allocate memory in static TLS block" далее нашёл https://bugs.mysql.com/bug.php?id=113029 совет оттуда $ LD_PRELOAD=/usr/lib64/libstdc++.so.6 python2 test.py помогает, программа ругачих сообщений не пишет, db создаёт, «print db.isValid()» печатает «True». Товарищи из ubuntu вроде как решали подобную головоломку в 2020 году - https://bugs.launchpad.net/ubuntu/+source/opencv/+bug/1890170 https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1889851
Видимо, mysql надо собирать с -ftls-model=initial-exec
Created attachment 15555 [details] Отменяю Faster TLS model
(Ответ для Sergey V Turchin на комментарий #11) > Видимо, mysql надо собирать с -ftls-model=initial-exec Наоборот, для этой задачи нехорошо собирать mysql с tls-model=initial-exec. патч приложил, у меня test.py заработал.