Showing posts with label MySQL. Show all posts
Showing posts with label MySQL. Show all posts

Saturday, November 4, 2023

Check for Percona 8.0 upgrades

One thing I wasn't aware of is that in order to fully check for Percona upgrades, I had to manually run the command:

sudo percona-release setup ps80

https://docs.percona.com/percona-server/8.0/installation.html

Wednesday, September 27, 2023

Save MySQL data to compressed CSV file using a FIFO named pipe

It's very easy to save MySQL data to a compressed file by using a named pipe.
You need to have two bash terminals open, A & B, presumably in screen/tmux sessions since you are likely interested in large tables that take a long time to export.

Terminal A, Step 1: Create the FIFO named pipe (make sure MySQL can write to it):

mkfifo "/path/to/data.csv"
sudo chown mysql 
"/path/to/data.csv"

Terminal A, Step 2: Have zstd read from the FIFO pipe and write to an output file:

zstd -o "/tmp/data.csv.zst" < "/path/to/data.csv" &

Terminal B: Save the MySQL data:

SELECT * FROM your_table
 INTO OUTFILE '/path/to/data.csv'
 CHARACTER SET UTF8MB4
 FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'
        ESCAPED BY '"'
 LINES TERMINATED BY '\n';

The only issue would be the NULL columns, which  you can deal with manually by using IFNULL when constructing your query.