在LAMP(Linux, Apache, MySQL/MariaDB, PHP)环境中,数据库管理是核心任务之一。以下是全面的数据库管理方法:
# 登录MySQL
mysql -u root -p
# 创建数据库
CREATE DATABASE database_name;
# 创建用户并授权
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
# 备份数据库
mysqldump -u username -p database_name > backup.sql
# 恢复数据库
mysql -u username -p database_name < backup.sql
推荐工具: - phpMyAdmin (Web界面) - MySQL Workbench (桌面应用) - Adminer (轻量级替代phpMyAdmin) - DBeaver (跨平台数据库工具)
sudo apt install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
编辑/etc/mysql/my.cnf
或/etc/mysql/mariadb.conf.d/50-server.cnf
:
[mysqld]
innodb_buffer_pool_size = 1G # 根据服务器内存调整
query_cache_size = 64M
max_connections = 100
-- 添加索引
ALTER TABLE table_name ADD INDEX index_name (column_name);
-- 分析查询性能
EXPLAIN SELECT * FROM table_name WHERE condition;
更改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
删除匿名用户:
DELETE FROM mysql.user WHERE User='';
限制远程访问:
DELETE FROM mysql.user WHERE Host='%';
定期备份:
# 每日自动备份(crontab)
0 3 * * * /usr/bin/mysqldump -u root -p'password' --all-databases | gzip > /backups/mysql_$(date +\%Y\%m\%d).sql.gz
-- 优化表
OPTIMIZE TABLE table_name;
-- 修复表
REPAIR TABLE table_name;
-- 检查表状态
CHECK TABLE table_name;
常见问题解决方案:
- 连接问题:检查MySQL服务状态sudo systemctl status mysql
- 权限问题:验证用户权限SHOW GRANTS FOR 'user'@'host';
- 性能问题:使用慢查询日志slow_query_log = 1
通过以上方法,您可以有效地在LAMP环境中管理MySQL/MariaDB数据库,确保其安全、高效运行。