mysql
Helps your agent manage MySQL/MariaDB databases. It configures replication and optimizes performance. Useful for those administering MySQL deployments.
What it does
This agent helps manage MySQL or MariaDB databases. It can install, configure, optimize, and back up these databases.
When to use it
- ✓When installing a new MySQL/MariaDB database.
- ✓When you need to optimize your database's speed.
- ✓To set up database backups.
Example of what to ask your AI
“How do I set up MySQL on my Linux server?”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
It uses system commands to install the software and SQL scripts to create users and databases. For optimization and backups, it adjusts configuration files and runs specific tools.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill mysqlOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/mysql/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
MySQL / MariaDB
Administer, optimize, and secure MySQL and MariaDB databases in development and production environments.
When to Use
- You need a mature, widely supported relational database.
- Your stack depends on MySQL-specific features or compatibility (WordPress, Magento, many PHP frameworks).
- You are setting up source-replica replication for read scaling.
- You want to tune InnoDB for high-throughput transactional workloads.
Prerequisites
- Linux server (Debian/Ubuntu or RHEL-based) or Docker.
- Root or sudo access for package installation.
- Familiarity with SQL fundamentals.
Installation and Setup
# Debian / Ubuntu — MySQL 8
sudo apt update
sudo apt install -y mysql-server
# RHEL / Amazon Linux
sudo dnf install -y mysql-server
sudo systemctl enable --now mysqld
# Run the secure installation wizard
sudo mysql_secure_installation
# Prompts: set root password, remove anonymous users, disable remote root, remove test db
# Verify
mysql --version
sudo systemctl status mysql
Initial User and Database Setup
sudo mysql -u root -p
-- Create a database
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Create an application user with strong auth
CREATE USER 'myapp'@'%' IDENTIFIED BY 'strong_password_here';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'myapp'@'%';
FLUSH PRIVILEGES;
-- Verify
SHOW GRANTS FOR 'myapp'@'%';
mysql CLI Reference
# Connect
mysql -u myapp -p -h 127.0.0.1 mydb
# Execute a single statement
mysql -u myapp -p -e "SELECT COUNT(*) FROM orders;" mydb
# Import a SQL file
mysql -u myapp -p mydb < schema.sql
# Export query results to CSV
mysql -u myapp -p -e "SELECT * FROM users" mydb \
| tr '\t' ',' > users.csv
-- Inside the mysql shell
SHOW DATABASES;
USE mydb;
SHOW TABLES;
DESCRIBE users;
SHOW CREATE TABLE users\G
SHOW PROCESSLIST;
SHOW ENGINE INNODB STATUS\G
Configuration Tuning
Edit /etc/mysql/mysql.conf.d/mysqld.cnf (or /etc/my.cnf on RHEL).
[mysqld]
# -- Networking --
bind-address = 0.0.0.0
max_connections = 300
wait_timeout = 600
interactive_timeout = 600
# -- InnoDB (most impactful settings) --
innodb_buffer_pool_size = 4G # ~70% of RAM on a dedicated server
innodb_buffer_pool_instances = 4 # 1 per GB of pool (up to 64)
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 1 # 1 = ACID; 2 = faster, slight risk
innodb_flush_method = O_DIRECT # avoids double buffering on Linux
innodb_io_capacity = 2000 # raise for SSD
innodb_io_capacity_max = 4000
# -- Query cache (disabled in MySQL 8, use ProxySQL or app cache) --
# query_cache_type = 0
# -- Logging --
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_error = /var/log/mysql/error.log
# -- Binary log (required for replication) --
server-id = 1
log_bin = /var/log/mysql/mysql-bin
binlog_expire_logs_seconds = 604800 # 7 days
sync_binlog = 1
# -- Character set --
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# Apply changes
sudo systemctl restart mysql
# Verify a setting at runtime
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Backup and Restore
Logical Backups with mysqldump
# Single database
mysqldump -u root -p --single-transaction --routines --triggers \
mydb > /backups/mydb_$(date +%F).sql
# All databases
mysqldump -u root -p --all-databases --single-transaction \
> /backups/all_$(date +%F).sql
# Compressed backup
mysqldump -u root -p --single-transaction mydb \
| gzip > /backups/mydb_$(date +%F).sql.gz
# Restore
mysql -u root -p mydb < /backups/mydb_2025-01-15.sql
# Restore compressed
gunzip < /backups/mydb_2025-01-15.sql.gz | mysql -u root -p mydb
Physical Backups with Percona XtraBackup
# Install
sudo apt install -y percona-xtrabackup-80
# Full backup
xtrabackup --backup --user=root --password=secret \
--target-dir=/backups/full_$(date +%F)
# Prepare the backup (apply redo logs)
xtrabackup --prepare --target-dir=/backups/full_2025-01-15
# Restore (stop MySQL first)
sudo systemctl stop mysql
ls /var/lib/mysql/* # verify this is the correct data dir first
sudo find /var/lib/mysql -mindepth 1 -delete # empty the data dir; snapshots must exist (see Limitations)
…
FAQ
What is a relational database?
It's a type of database that organizes data into tables with rows and columns, allowing information to be related to each other.
What is database replication?
It's the process of copying data from one database to another, usually to improve performance or availability.
What is 'mysqldump'?
It's a tool that creates a logical backup of your database, exporting the data and structure in text format.
Details
Original description by the author
Administer MySQL/MariaDB databases. Configure replication and optimize performance. Use when managing MySQL deployments.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3651
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
clickhouse-io
Helps your agent optimize queries and schemas in ClickHouse databases. It applies best practices for high-performance analytical workloads. Use when analytical queries are too slow.
affaan-m/ECC
scientific-db-pubmed-database
Helps your agent search for scientific articles in the biomedical field. It's useful for research needing specific medical information.
affaan-m/ECC
scientific-db-uspto-database
Allows the agent to look up official US patent and trademark data. It's useful for intellectual property research.
affaan-m/ECC