Ubuntu系统数据库管理指南
Ubuntu作为主流Linux发行版,支持MySQL、PostgreSQL、MongoDB等多种数据库管理。以下从安装配置、日常管理、性能优化、安全管理、图形化工具五大维度,梳理完整的数据库管理流程:
sudo apt update && sudo apt install mysql-server mariadb-server(MariaDB为MySQL分支,兼容性高)。sudo mysql_secure_installation,依次设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库,强化初始安全。systemctl命令控制服务状态,如sudo systemctl start mysql(启动)、sudo systemctl enable mysql(开机自启)、sudo systemctl status mysql(查看状态)。sudo apt update && sudo apt install postgresql postgresql-contrib(postgresql-contrib包含扩展工具,如pg_dump)。postgres用户运行,切换至该用户执行psql进入命令行界面,通过ALTER USER postgres WITH PASSWORD 'your_password';设置密码;创建数据库与用户:CREATE DATABASE mydb; CREATE USER myuser WITH PASSWORD 'user_pass'; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;。wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -;创建源列表文件echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list;更新包列表并安装sudo apt update && sudo apt install -y mongodb-org。sudo systemctl start mongod(启动)、sudo systemctl enable mongod(开机自启),默认监听27017端口。mysql -u root -p,创建数据库CREATE DATABASE db_name;,使用数据库USE db_name;,创建表CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));。psql登录,创建数据库\l(查看数据库列表)、\c db_name(连接数据库)、\dt(查看表列表)。mongo进入shell,创建数据库use db_name(切换至不存在的数据库时会自动创建),插入文档db.collection.insert({name: "Alice", age: 25});。CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';,授权GRANT SELECT, INSERT ON db_name.* TO 'username'@'localhost';,刷新权限FLUSH PRIVILEGES;。CREATE USER username WITH PASSWORD 'password';,授权GRANT ALL PRIVILEGES ON DATABASE db_name TO username;。db.createUser({user: "username", pwd: "password", roles: [{role: "readWrite", db: "db_name"}]});。mysqldump工具备份mysqldump -u username -p db_name > backup.sql,恢复mysql -u username -p db_name < backup.sql。pg_dump db_name > backup.sql(备份)、psql -d db_name -f backup.sql(恢复)。mongodump --uri="mongodb://localhost:27017/db_name" --out=/backup/path(备份)、mongorestore --uri="mongodb://localhost:27017/db_name" /backup/path/db_name(恢复)。CREATE INDEX idx_name ON users(name);,避免全表扫描;EXPLAIN分析查询计划,如EXPLAIN SELECT * FROM users WHERE name = 'Alice';,查看是否使用了索引。SELECT *,只查询所需字段;LIMIT限制返回行数;WHERE子句中对字段使用函数(如WHERE YEAR(create_time) = 2025),否则会导致索引失效。innodb_buffer_pool_size(InnoDB缓冲池大小,建议设为物理内存的50%-70%)、key_buffer_size(MyISAM索引缓冲区大小);shared_buffers(共享缓冲区,建议设为物理内存的25%)、work_mem(排序/哈希操作内存,建议设为几MB到几十MB);wiredTiger引擎的cacheSizeGB(缓存大小,建议设为物理内存的50%)。ufw限制数据库端口访问,如MySQL(3306)、PostgreSQL(5432)、MongoDB(27017),仅允许可信IP访问:sudo ufw allow from trusted_ip to any port 3306。mysql_secure_installation脚本,移除匿名用户、禁止root远程登录;pg_hba.conf(位于/etc/postgresql/<version>/main/),限制客户端认证方式(如仅允许md5密码认证);requirepass)、禁用危险命令(如FLUSHALL)、使用非默认端口。sudo apt install mysql-workbench。sudo apt install phpmyadmin(需配置Apache/Nginx)。sudo snap install dbeaver-ce。sudo snap install beekeeper-studio。