前期准备
-
安装MySQL
# Ubuntu/Debian sudo apt update && sudo apt install mysql-server # CentOS/RHEL sudo yum install mysql-server sudo systemctl start mysqld
-
获取初始密码(仅首次安装)
sudo grep 'temporary password' /var/log/mysqld.log # CentOS sudo cat /etc/mysql/debian.cnf # Ubuntu
连接MySQL服务器
场景 | 命令示例 | 参数说明 |
---|---|---|
本地连接 | mysql -u root -p |
-u :用户名,-p :密码输入提示 |
指定主机 | mysql -h 192.168.1.100 -u admin -p |
-h :服务器IP,-P 3307 :指定端口 |
无交互登录 | mysql -u root -p'YourPassword' |
警告:密码明文有泄露风险 |
基础数据库操作
-- 查看所有数据库 SHOW DATABASES; -- 创建新数据库 CREATE DATABASE mydb; -- 选择数据库 USE mydb; -- 创建表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE ); -- 插入数据 INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); -- 查询数据 SELECT * FROM users WHERE name LIKE 'A%'; -- 更新数据 UPDATE users SET email = 'new@example.com' WHERE id = 1; -- 删除数据 DELETE FROM users WHERE id = 2;
用户与权限管理
-- 创建用户 CREATE USER 'dev'@'localhost' IDENTIFIED BY 'StrongPass123!'; -- 授权所有权限 GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost'; -- 撤销权限 REVOKE DELETE ON mydb.* FROM 'dev'@'localhost'; -- 立即生效 FLUSH PRIVILEGES;
备份与恢复
-
备份整个数据库
mysqldump -u root -p --all-databases > full_backup.sql
-
备份单库
mysqldump -u root -p mydb > mydb_backup.sql
-
恢复数据库
mysql -u root -p mydb < mydb_backup.sql
安全操作规范
-
避免密码暴露
# 正确做法:使用提示输入 mysql -u root -p # 错误做法:命令行明文密码 mysql -u root -p'password' # 可能被ps命令捕获
-
操作历史清理
history -c # 清除当前会话历史 rm ~/.mysql_history # 删除历史文件
故障排查
-
连接拒绝
# 检查服务状态 sudo systemctl status mysql # 验证端口监听 sudo netstat -tuln | grep 3306
-
忘记root密码
- 编辑配置文件:
sudo vi /etc/my.cnf
- 在
[mysqld]
段添加:skip-grant-tables
- 重启服务:
sudo systemctl restart mysql
- 无密码登录重置:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass';
- 编辑配置文件:
高级技巧
-
批处理模式
mysql -u user -p < script.sql
-
输出结果到文件
SELECT * INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' FROM users;
-
查看运行进程
SHOW PROCESSLIST;
引用说明:
本文操作基于MySQL 8.0官方文档,遵循MySQL安全指南(MySQL Security Guidelines),命令行参数参考mysql --help
及mysqldump
手册页,权限管理部分符合最小权限原则(Principle of Least Privilege)。
通过系统化练习上述命令,您将高效管理Linux环境下的MySQL数据库,关键操作前务必验证备份有效性,生产环境避免直接使用root账户日常操作。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6599.html