====== MySQL ====== MySQL is an open-source relational database management system. Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language. Brimble.com uses MySQL to store the tables for most all things running on the server. ===== Version ===== I used the official docker from Bungy's repository. ===== Docker Setup ===== * Network Type: Custom: brimble * Fixed IP address (optional): blank * Console shell command: Shell * Privileged: off * Host Port 1: 3306 * Host Path 1: /mnt/disks/samsung_ssd/appdata/mysql * Key 1 (MYSQL_ROOT_PASSWORD): ******** * Key 2 (MYSQL_DATABASE): nextcloud (i used this to create the nexcloud structure... added more later) * Key 3 (MYSQL_USER): **** * Key 4 (MYSQL_PASSWORD): ******** ===== App Settings ===== * User standard SQL commands to import databases from back up, allow privileges, etc. * See [[unraid:virtual:ubuntu20.04#install_mysql_if_not_using_a_docker|Install MySql]] section of installing ubuntu pages for most commands. write access is not needed as that feature was removed by changing the way the NCAA pool temp stores the data. ===== Connect ===== docker exec -it mysql bash ===== Load Football pool ===== * Create csv file * Cyberduck it over to tmp folder on unraid server * copy it to tmp folder on docker docker cp /tmp/2021.csv mysql:/tmp/2021.csv * go back to docker console, copy it to mysql-files directory cp /tmp/2021.csv /var/lib/mysql-files/2021.csv * log into mysql * check LOCAL INFILE var mysql> show global variables like 'local_infile'; * fix it if need be mysql> set global local_infile=true; * log out of mysql and back in with proper option mysql --local_infile=1 -u root -ppassword DB_name * Use normal commands LOAD DATA LOCAL INFILE "/var/lib/mysql/2021.csv" INTO TABLE games COLUMNS TERMINATED BY ','; UPDATE games SET vscore = NULL where year = 2021; UPDATE games SET hscore = NULL where year = 2021; ===== Adjust Max Connections ===== * show processlist; * show variables like '%timeout'; * Either use vs-code setup to edit my.cnf from /etc folder OR copy my.cnf from /etc folder in the docker to the server for editing docker cp mysql:/etc/my.cnf . * add following lines to my.cnf (put them just under the [mysqld] line... putting them under [client] is no bueno![mysqld] wait_timeout = 600 interactive_timeout = 600 max_connections = 500 * copy my.cnf back to docker cp my.cnf mysql:/etc/my.cnf * restart docker