Mac上MySQL和MongoDB完整操作指南
目录
MySQL操作指南
MySQL基础操作
启动/停止MySQL服务
- 使用 Homebrew 安装的 MySQL:
brew services start mysql
brew services stop mysql
brew services restart mysql
brew services list
- 使用官网安装包安装的 MySQL:
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server restart
登录MySQL
mysql -u root -p
mysql -u username -p database_name
MySQL数据库操作
SHOW DATABASES;
CREATE DATABASE database_name;
USE database_name;
DROP DATABASE database_name;
SELECT DATABASE();
MySQL表操作
SHOW TABLES;
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
DESC table_name;
ALTER TABLE table_name ADD COLUMN new_column VARCHAR(50);
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(100);
ALTER TABLE table_name DROP COLUMN column_name;
DROP TABLE table_name;
MySQL数据操作
INSERT INTO table_name (name, age, email)
VALUES ('张三', 25, 'zhangsan@example.com');
SELECT * FROM table_name;
SELECT name, age FROM table_name WHERE age > 20;
UPDATE table_name SET age = 26 WHERE name = '张三';
DELETE FROM table_name WHERE id = 1;
SELECT * FROM table_name WHERE age >= 20 AND age <= 30;
SELECT * FROM table_name ORDER BY age DESC;
SELECT age, COUNT(*) as count FROM table_name GROUP BY age;
SELECT * FROM table_name LIMIT 10;
SELECT a.*, b.department
FROM employees a
JOIN departments b ON a.dept_id = b.id;
MySQL用户管理
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
GRANT SELECT, INSERT ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'username'@'localhost';
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
DROP USER 'username'@'localhost';
MongoDB操作指南
MongoDB基础操作
brew services start mongodb-community
brew services stop mongodb-community
mongosh
MongoDB数据库操作
show dbs
use database_name
db
db.dropDatabase()
MongoDB集合操作
db.createCollection("collection_name")
show collections
db.collection_name.drop()
MongoDB文档操作
db.collection_name.insertOne({
name: "张三",
age: 25,
email: "zhangsan@example.com"
})
db.collection_name.insertMany([
{ name: "李四", age: 30 },
{ name: "王五", age: 35 }
])
db.collection_name.find()
db.collection_name.find({ age: { $gt: 20 } })
db.collection_name.updateOne(
{ name: "张三" },
{ $set: { age: 26 } }
)
db.collection_name.updateMany(
{ age: { $gt: 20 } },
{ $inc: { age: 1 } }
)
db.collection_name.deleteOne({ name: "张三" })
db.collection_name.deleteMany({ age: { $lt: 20 } })
MongoDB查询优化
db.collection_name.createIndex({ name: 1 })
db.collection_name.getIndexes()
db.collection_name.dropIndex("index_name")
db.collection_name.find({ age: { $gt: 20 } }).explain()
db.collection_name.aggregate([
{ $match: { age: { $gt: 20 } } },
{ $group: { _id: "$age", count: { $sum: 1 } } }
])
实用技巧
- MySQL导入导出数据
mysqldump -u username -p database_name > backup.sql
mysql -u username -p database_name < backup.sql
- MongoDB导入导出数据
mongodump --db=database_name --out=/backup/path
mongorestore --db=database_name /backup/path/database_name
- 性能优化建议
- 定期进行数据库备份
- 合理使用索引
- 经常运行的查询语句要优化
- 定期维护和优化数据库
- 监控数据库性能
注意事项
- 在执行删除和更新操作时要小心,最好先用 SELECT 确认要操作的数据
- 重要操作前要先备份数据
- 定期更新数据库版本和安全补丁
- 设置合适的字符集和排序规则
- 注意数据库安全,合理设置用户权限