安装与启动
sudo apt-get install mariadb-server
sudo yum install mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
登录与基础命令
mysql -u root -p
CREATE DATABASE db_name;
CREATE TABLE table_name (id INT, name VARCHAR(50));
INSERT INTO table_name VALUES (1, 'Alice');
用户与权限管理
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT ON db_name.* TO 'user'@'localhost';
REVOKE SELECT ON db_name.* FROM 'user'@'localhost';
配置参数调优
innodb_buffer_pool_size
(建议设置为物理内存的50%-70%)。max_connections
避免资源耗尽。slow_query_log=1
,分析低效SQL。SQL优化
SELECT *
,只查询必要字段。EXPLAIN
分析查询计划。JOIN
替代子查询,减少数据库开销。系统层面优化
vm.swappiness=1
减少交换分区使用。ulimit
增加文件描述符限制(如 nofile=65535
)。基础安全加固
mysql_secure_installation
脚本,设置root密码、删除匿名用户、禁止远程root登录。/etc/mysql/mariadb.conf.d/50-server.cnf
,将 bind-address
设为 0.0.0.0
以支持远程访问(需配合防火墙)。访问控制与加密
ufw
或 firewalld
)限制3306端口仅允许可信IP访问。审计与监控
备份与恢复
mysqldump
备份数据库:mysqldump -u root -p db_name > backup.sql
mysql -u root -p db_name < backup.sql
高可用性配置
my.cnf
实现主库与从库数据同步。自动化运维
/var/log/mysql/error.log
,常见原因包括端口冲突、配置文件错误。/var/lib/mysql
属主为 mysql
用户)。character-set-server=utf8mb4
,并重启服务。参考来源:[1,2,3,4,5,6,7,8,9,10]