前提条件
-
安装MySQL客户端
若未安装,执行以下命令(以Ubuntu/Debian为例):sudo apt update && sudo apt install mysql-client
CentOS/RHEL系统:
sudo yum install mysql
-
准备数据库凭据
- 有效的MySQL用户名(如
root
) - 密码
- 数据库主机地址(本地为
localhost
,远程需IP或域名) - 端口号(默认
3306
)
- 有效的MySQL用户名(如
登录MySQL数据库的4种方法
方法1:基础登录(交互式输入密码)
mysql -u [用户名] -p -h [主机地址] -P [端口]
- 示例:
mysql -u root -p -h localhost -P 3306
- 系统提示输入密码,输入时密码不可见(安全推荐)。
方法2:直接指定密码(非交互式,慎用)
mysql -u [用户名] -p[密码] -h [主机地址]
- 示例:
mysql -u root -pMyPassword123 -h 127.0.0.1
- ⚠️ 风险:密码会暴露在命令历史中(可通过
history
查看),仅限测试环境使用。
方法3:通过配置文件自动登录
- 创建配置文件
~/.my.cnf
:nano ~/.my.cnf
- 写入以下内容(权限设为
600
防止泄露):[client] user = 你的用户名 password = 你的密码 host = 主机地址(如localhost) port = 3306
- 直接登录:
mysql
方法4:连接远程MySQL服务器
mysql -u [远程用户名] -p -h [远程IP] -P [端口]
- 示例:
mysql -u admin -p -h 192.168.1.100 -P 3306
- 需确保远程服务器已开启访问权限(参考 问题排查 部分)。
登录后操作示例
- 显示所有数据库:
SHOW DATABASES;
- 使用指定数据库:
USE database_name;
- 退出MySQL:
EXIT;
常见问题排查
-
权限拒绝错误 (ERROR 1045)
- 检查用户名/密码是否正确。
- 确认用户是否有远程访问权限(本地用户需绑定
localhost
)。
-
连接超时 (ERROR 2003)
- 检查MySQL服务是否运行:
sudo systemctl status mysql
- 防火墙放行端口(默认3306):
sudo ufw allow 3306/tcp
- 检查MySQL服务是否运行:
-
远程主机拒绝访问
- 在MySQL服务器执行:
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'客户端IP' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;
- 在MySQL服务器执行:
安全建议
-
密码管理
- 始终使用
-p
交互式输入密码,避免命令历史泄露。 - 定期更新密码,避免使用弱密码。
- 始终使用
-
最小权限原则
- 为操作分配仅需的数据库权限(非必要不用
root
)。
- 为操作分配仅需的数据库权限(非必要不用
-
加密连接
重要数据传输启用SSL:mysql --ssl-mode=REQUIRED -u 用户名 -p -h 主机地址
引用说明
本文操作基于MySQL 8.0官方文档,参考来源:
- MySQL 8.0 Reference Manual: Connecting to the Server
- Linux权限管理遵循POSIX标准(IEEE Std 1003.1)
重要提示:生产环境操作前请备份数据,并遵守企业安全规范。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5438.html