servers:linux:mysql
This is an old revision of the document!
Table of Contents
Information
- MySQL Community Edition 1)
Prerequisites
Repository
sudo dnf install 'https://dev.mysql.com/get/mysql80-community-release-fc29-2.noarch.rpm'
5.7
- Disables the latest GA repo and enables the 5.7 repo
- This is necessary for TrinityCore
sudo dnf repolist all | grep 'mysql'
sudo dnf config-manager --disable 'mysql80-community'
sudo dnf config-manager --enable 'mysql57-community' && sudo dnf repolist enabled | grep 'mysql'
Dependencies
sudo dnf install 'mysql-community-server'
Settings
Initial
echo '!includedir /etc/my.cnf.d' | sudo tee --append '/etc/my.cnf' > '/dev/null'
Settings
sudo mkdir -p '/etc/my.cnf.d' && sudo -e '/etc/my.cnf.d/custom.cnf'
[mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci expire_logs_days = 7 max_binlog_size = 100M skip-networking = On sql-mode =
Verify
mysqladmin variables -u 'root' -p | egrep 'utf8|networking|socket'
Initial Setup
Service
sudo systemctl enable 'mysqld' --now
Get Temporary Password
cat '/var/log/mysqld.log' | grep 'temporary password'
Setup
mysql_secure_installation
Database Repair and Optimization
Create MySQL User
mysql -u 'root' -p
GRANT SELECT, INSERT ON *.* to 'maintenance'@'localhost' IDENTIFIED BY 'x';
FLUSH PRIVILEGES;
Authentication File
sudo -u 'mysql' mkdir -p '/var/lib/mysql/auth' && sudo -u 'mysql' -e '/var/lib/mysql/auth/maintenance' && sudo chmod '600' '/var/lib/mysql/auth/maintenance'
[mysqlcheck] user=maintenance password=x
Service
sudo -e '/etc/systemd/system/db-m.service'
[Service] User=mysql Group=mysql Type=oneshot ExecStart='/usr/bin/mysqlcheck' --defaults-extra-file='/var/lib/mysql/auth/maintenance' --auto-repair --optimize --all-databases --force ExecStartPost='/usr/bin/sync'
Timer
sudo -e '/etc/systemd/system/db-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'db-m.timer' --now && sudo systemctl start 'db-m' && sudo systemctl status 'db-m' -l
[Unit] Description=MySQL Database Check, Repair, and Optimization After=mysqld.service [Timer] OnCalendar=weekly Persistent=true [Install] WantedBy=timers.target
Notable Commands
Show Users on Server
select User,Host from mysql.user;
Show Data Folder Location
select @@datadir;
Socket File
/var/lib/mysql/mysql.sock
Log
/var/log/mysqld.log
Reset
sudo systemctl stop 'mysqld'
sudo rm -Rf '/etc/my.cnf'* '/var/lib/mysql'* '/var/log/mysqld.log' && sync
sudo dnf reinstall 'mysql-community-server'
Password Validation
cnf
validate_password_policy=LOW
Query
mysql -u 'root' -p
SHOW VARIABLES LIKE 'validate_password%';
Configure
- Default policy is
MEDIUM
mysql -u 'root' -p
SET GLOBAL validate_password_policy=LOW;
Disable
mysql -u 'root' -p
UNINSTALL PLUGIN validate_password;
Enable
mysql -u 'root' -p
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
/srv/www/wiki/data/attic/servers/linux/mysql.1723581197.txt.gz · Last modified: (external edit)