准备工作
-
确认MySQL服务状态
执行命令检查MySQL是否运行:systemctl status mysql # 适用于Systemd系统(如Ubuntu 16.04+、CentOS 7+) service mysql status # 旧版SysVinit系统
若未启动,使用
sudo systemctl start mysql
启动服务。 -
获取登录凭据
- 默认管理员账户:
root
(安装时设置的密码) - 若忘记密码,参考官方重置指南。
- 默认管理员账户:
登录MySQL的4种常用方法
方法1:基础登录(本地Socket连接)
mysql -u [用户名] -p
- 操作示例:
mysql -u root -p
-u
指定用户名(root
可替换为其他账户)-p
触发密码输入(输入时密码不可见)- 适用场景:本地主机通过Socket文件连接(默认
/var/run/mysqld/mysqld.sock
)。
方法2:指定主机和端口(TCP/IP连接)
mysql -u [用户名] -h [主机IP] -P [端口] -p
- 操作示例:
mysql -u admin -h 192.168.1.100 -P 3306 -p
-h
指定数据库服务器IP(默认0.0.1
)-P
指定端口(默认3306
)- 适用场景:远程连接或自定义端口。
方法3:直接输入密码(非交互式,慎用)
mysql -u root -p'YourPassword' # 密码用单引号包裹
- ⚠️ 安全警告:
密码会暴露在命令历史(~/.bash_history
)中,仅限测试环境使用,生产环境推荐交互式输入。
方法4:使用配置文件(避免密码泄露)
- 创建配置文件
~/.my.cnf
:[client] user = root password = YourSecurePassword host = localhost
- 设置文件权限:
chmod 600 ~/.my.cnf # 限制仅当前用户可读
- 直接登录:
mysql # 自动读取配置
登录后操作与退出
- 验证登录成功
成功进入MySQL提示符:mysql> SELECT VERSION(); -- 查看MySQL版本 mysql> SHOW DATABASES; -- 显示所有数据库
- 退出MySQL
mysql> EXIT; -- 或按 Ctrl+D
常见问题解决
-
错误1045: “Access Denied”
- 检查用户名/密码是否正确
- 确认用户是否有远程访问权限(本地登录正常时):
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
-
错误2002: “Can’t connect to local MySQL server”
- MySQL服务未启动:
sudo systemctl start mysql
- Socket文件路径错误:
mysql -u root -p -S /path/to/mysql.sock
- MySQL服务未启动:
-
错误1130: “Host is not allowed to connect”
在MySQL服务器执行:UPDATE mysql.user SET host='%' WHERE user='username'; FLUSH PRIVILEGES;
安全建议
-
避免密码泄露
- 禁止在命令行直接写密码
- 使用
mysql_config_editor
加密凭证:mysql_config_editor set --login-path=client --user=root --password
-
最小权限原则
日常操作使用非root
账户,按需授权:CREATE USER 'dev'@'localhost' IDENTIFIED BY 'StrongPass!'; GRANT SELECT, INSERT ON dbname.* TO 'dev'@'localhost';
-
防火墙配置
仅允许可信IP访问3306端口:sudo ufw allow from 192.168.1.0/24 to any port 3306
通过命令行登录MySQL是Linux环境的核心技能,掌握基础登录、参数配置及故障排查可高效管理数据库,首次登录建议使用root
账户,后续创建专用账户提升安全性,实践时结合错误日志(/var/log/mysql/error.log
)能快速定位问题。
引用说明:
- MySQL 8.0官方文档:Connection and Access Control
- Linux权限管理指南:Filesystem Permissions
- 安全实践参考:OWASP Database Security
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5440.html