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
。