Didn't know it before... Now I love it :-)
Just check it out. It's a very nice way to (re)view your logfiles!
Broken MySQL 8 – after upgrade 8.0.22_1 -> 8.0.23
This morning, I tried to upgrade MySQL 8:
mysql80-server upgraded: 8.0.22_1 -> 8.0.23
But then after upgrading. MySQL didn't start anymore !
It was broken:
2021-02-22T06:20:33.856568Z 4 [System] [MY-013381] [Server] Server upgrade from '80022' to '80023' started.
2021-02-22T06:20:34.351272Z 4 [ERROR] [MY-013178] [Server] Execution of server-side SQL statement '-- Create slow_log CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), user_host MEDIUMTEXT NOT NULL, query_time TIME(6) NOT NULL, lock_time TIME(6) NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512) NOT NULL, last_insert_id INTEGER NOT NULL, insert_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, sql_text MEDIUMBLOB NOT NULL, thread_id BIGINT UNSIGNED NOT NULL) engine=CSV CHARACTER SET utf8 comment="Slow log"; ' failed with error code = 13, error message = 'Can't get stat of './mysql/slow_log.CSV' (OS errno 2 - No such file or directory)'.
2021-02-22T06:20:34.354494Z 0 [ERROR] [MY-013380] [Server] Failed to upgrade server.
2021-02-22T06:20:34.354946Z 0 [ERROR] [MY-010119] [Server] Aborting
Googling didn't solve my issue directly. So I tried to create this missing CSV file. (in the mysql database directory)
After this error I also received a missing slog_log.CSV.
Did the same thing.
touch ./mysql/general_log.CSV
chown mysql:mysql ./mysql/general_log.CSV
touch ./mysql/slow_log.CSV
chown mysql:mysql ./mysql/slow_log.CSV
Then it works again!
This seems to happen if you skip a certain upgrade. (from now on these CSV files are required). And these CSV files are only created in that particular update.. (not very robust!)
Git diff with previous commit
git diff '@~..@'
Fix database collections
A new fix fo database collections (with supported emoticons)
ActiveRecord::Base.connection.tables.each do |table|
ActiveRecord::Base.connection.execute( "ALTER TABLE `#{table}` CONVERT TO CHARACTER SET utf8mb4;")
end
Quick way to delete to many files in the current directory (argument list to long)
find . -type f -delete
When it's really you can use the folowing perl command to delete all files. (I had a situation with 3 milion files)
cd /folder/to/delete-files
perl -e 'for(<*>){((stat)[9]<(unlink))}'
Reference: https://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux