Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need to Check DB Charset During Install #5065

Open
miqrogroove opened this issue Dec 3, 2024 · 3 comments
Open

Need to Check DB Charset During Install #5065

miqrogroove opened this issue Dec 3, 2024 · 3 comments

Comments

@miqrogroove
Copy link
Contributor

I was setting up a test environment for v2.2.1 and tried to re-use an old MySQL database where the charset was latin1 prior to install. This didn't cause any problems during the install itself.

However, when I tried to disable some languages from the All Modules page, it threw this gem:

SQLSTATE[HY000]: General error: 3988 Conversion from collation utf8mb4_0900_ai_ci into latin1_swedish_ci impossible for parameter (Connection: default, SQL: update `wtb_session` set `session_data` = initiated|b:1;_GUEST_sessiontime|s:10:"1733199016";language|s:5:"en-US";theme|s:8:"webtrees";last_gedcom_id|i:1;last_page_name|s:9:"index.php";last_page_parameter|s:6:"user:1";last_count|i:5;CSRF_TOKEN|s:32:"V9Pug3UGQSgTZZJvVasKkBHK25GjKJyy";wt_user|i:1;flash_messages|a:11:{i:0;O:8:"stdClass":2:{s:4:"text";s:50:"The module “العربية” has been disabled.";s:6:"status";s:7:"success";}i:1;O:8:"stdClass":2:{s:4:"text";s:54:"The module “български” has been disabled.";s:6:"status";s:7:"success";}i:2;O:8:"stdClass":2:{s:4:"text";s:52:"The module “Ελληνικά” has been disabled.";s:6:"status";s:7:"success";}i:3;O:8:"stdClass":2:{s:4:"text";s:46:"The module “עברית” has been disabled.";s:6:"status";s:7:"success";}i:4;O:8:"stdClass":2:{s:4:"text";s:54:"The module “हिन्दी” has been disabled.";s:6:"status";s:7:"success";}i:5;O:8:"stdClass":2:{s:4:"text";s:57:"The module “ქართული” has been disabled.";s:6:"status";s:7:"success";}i:6;O:8:"stdClass":2:{s:4:"text";s:55:"The module “қазақ тілі” has been disabled.";s:6:"status";s:7:"success";}i:7;O:8:"stdClass":2:{s:4:"text";s:56:"The module “українська” has been disabled.";s:6:"status";s:7:"success";}i:8;O:8:"stdClass":2:{s:4:"text";s:48:"The module “简体中文” has been disabled.";s:6:"status";s:7:"success";}i:9;O:8:"stdClass":2:{s:4:"text";s:48:"The module “繁體中文” has been disabled.";s:6:"status";s:7:"success";}i:10;O:8:"stdClass":2:{s:4:"text";s:57:"The module “Family Tree Home Page” has been disabled.";s:6:"status";s:7:"success";}}, `session_time` = 2024-12-03 04:19:01 where `session_id` = c7b517618d676bfeb05c4912e4f3ec92) …/vendor/illuminate/database/Connection.php:825
#0 …/vendor/illuminate/database/Connection.php(779): Illuminate\Database\Connection->runQueryCallback()
#1 …/vendor/illuminate/database/Connection.php(584): Illuminate\Database\Connection->run()
#2 …/vendor/illuminate/database/Connection.php(536): Illuminate\Database\Connection->affectingStatement()
#3 …/vendor/illuminate/database/Query/Builder.php(3866): Illuminate\Database\Connection->update()
#4 …/app/SessionDatabaseHandler.php(98): Illuminate\Database\Query\Builder->update()
#5 [internal function]: Fisharebest\Webtrees\SessionDatabaseHandler->write()
#6 …/app/Session.php(100): session_write_close()
#7 …/app/Http/Middleware/UseSession.php(81): Fisharebest\Webtrees\Session::save()
#8 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseSession->process()
#9 …/app/Http/Middleware/UpdateDatabaseSchema.php(57): Middleland\Dispatcher->handle()
#10 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UpdateDatabaseSchema->process()
#11 …/app/Http/Middleware/UseDatabase.php(60): Middleland\Dispatcher->handle()
#12 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseDatabase->process()
#13 …/app/Http/Middleware/BadBotBlocker.php(308): Middleland\Dispatcher->handle()
#14 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BadBotBlocker->process()
#15 …/app/Http/Middleware/CompressResponse.php(71): Middleland\Dispatcher->handle()
#16 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CompressResponse->process()
#17 …/app/Http/Middleware/ContentLength.php(40): Middleland\Dispatcher->handle()
#18 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ContentLength->process()
#19 …/vendor/middlewares/client-ip/src/ClientIp.php(65): Middleland\Dispatcher->handle()
#20 …/app/Http/Middleware/ClientIp.php(47): Middlewares\ClientIp->process()
#21 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ClientIp->process()
#22 …/app/Http/Middleware/PublicFiles.php(62): Middleland\Dispatcher->handle()
#23 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\PublicFiles->process()
#24 …/app/Http/Middleware/HandleExceptions.php(89): Middleland\Dispatcher->handle()
#25 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\HandleExceptions->process()
#26 …/app/Http/Middleware/SecurityHeaders.php(49): Middleland\Dispatcher->handle()
#27 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\SecurityHeaders->process()
#28 …/app/Http/Middleware/BaseUrl.php(73): Middleland\Dispatcher->handle()
#29 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BaseUrl->process()
#30 …/app/Http/Middleware/ReadConfigIni.php(68): Middleland\Dispatcher->handle()
#31 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ReadConfigIni->process()
#32 …/app/Http/Middleware/EmitResponse.php(57): Middleland\Dispatcher->handle()
#33 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\EmitResponse->process()
#34 …/app/Http/Middleware/ErrorHandler.php(38): Middleland\Dispatcher->handle()
#35 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ErrorHandler->process()
#36 …/vendor/oscarotero/middleland/src/Dispatcher.php(118): Middleland\Dispatcher->handle()
#37 …/app/Webtrees.php(280): Middleland\Dispatcher->dispatch()
#38 …/app/Webtrees.php(251): Fisharebest\Webtrees\Webtrees->httpRequest()
#39 …/index.php(24): Fisharebest\Webtrees\Webtrees->run()
#40 {main}
@miqrogroove
Copy link
Contributor Author

miqrogroove commented Dec 3, 2024

By the way, this suggests webtrees is not specifying any charset when creating tables. The database-level charset should be mostly irrelevant as long as the tables are created properly.

@fisharebest
Copy link
Owner

an old MySQL database

What version of MySQL?

@miqrogroove
Copy link
Contributor Author

miqrogroove commented Dec 3, 2024

Mysql 8.0.40

If I had to guess why that particular database was set to latin1, I suspect I had used it in the past to test other scripts. When I dropped the tables and installed webtrees for testing, I didn't think to check the old settings. My other databases are defaulted to utf8mb3 or utf8mb4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants