以下是CentOS下MySQL的使用技巧,涵盖安装、配置、优化及管理等方面:
安装MySQL
sudo yum install -y https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
sudo yum install -y mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
安全初始化
sudo mysql_secure_installation
配置文件优化(/etc/my.cnf)
innodb_buffer_pool_size = 1G # 建议为物理内存的50%-80%
innodb_log_file_size = 256M # 日志文件大小,影响性能
max_connections = 500 # 根据服务器负载调整
slow_query_log = ON # 开启慢查询日志
long_query_time = 1 # 慢查询阈值(秒)
远程访问配置
bind-address=0.0.0.0允许远程连接,并通过防火墙放行3306端口:sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
索引优化
CREATE INDEX idx_name ON users(name);
EXPLAIN分析查询计划,优化低效SQL:EXPLAIN SELECT * FROM orders WHERE user_id = 100;
查询与表优化
SELECT *,只查询必要字段;使用LIMIT限制返回行数。sudo mysqlcheck -o -u root -p database_name
备份与恢复
sudo mysqldump -u root -p --all-databases > all_backup.sql
mysql -u root -p < backup.sql
监控与日志
mysqladmin -u root -p status
mysqladmin -u root -p processlist # 查看当前进程
sudo grep "Slow query" /var/log/mysql-slow.log
权限管理
GRANT SELECT, INSERT ON db_name.* TO 'user'@'host';
FLUSH PRIVILEGES;
数据加密与审计
AES_ENCRYPT加密存储。general_log = ON
general_log_file = /var/log/mysql-general.log
server-id、log-bin及CHANGE MASTER TO命令实现数据同步。innodb_buffer_pool_size或升级硬件。以上技巧可根据实际业务场景灵活调整,操作前建议备份数据。参考来源: