前提条件
-
已安装MySQL服务
通过包管理器安装(示例):# Ubuntu/Debian sudo apt update && sudo apt install mysql-server # CentOS/RHEL sudo yum install mysql-server
-
确保服务已启动
sudo systemctl start mysql # 启动服务 sudo systemctl enable mysql # 设置开机自启
-
拥有有效用户名和密码
- 默认管理员账户:
root
(安装时可能已设置密码)。 - 若忘记密码,需重置root密码。
- 默认管理员账户:
进入MySQL命令行的3种方法
方法1:使用系统root账户直接登录(推荐)
sudo mysql -u root
- 适用场景:Ubuntu/Debian系统默认配置(无需密码验证)。
- 原理:利用
sudo
权限匹配系统用户与数据库用户(通过auth_socket
插件认证)。 - 成功标志:出现提示符
mysql>
方法2:通过密码验证登录
mysql -u 用户名 -p
- 步骤:
- 输入命令后按回车。
- 在提示
Enter password:
时输入密码(密码不可见)。
- 示例:
mysql -u root -p # 登录root账户 mysql -u alice -p # 登录普通用户alice
方法3:指定主机和端口(远程/特殊端口)
mysql -u 用户名 -p -h 主机IP -P 端口号
- 示例:
mysql -u admin -p -h 192.168.1.100 -P 3306
- 注意:
- 默认端口为
3306
,若修改过需指定-P
参数。 - 远程登录需确保:
- MySQL配置允许远程连接(修改
bind-address=0.0.0.0
)。 - 用户有远程访问权限(如
GRANT ALL ON *.* TO 'user'@'%'
)。
- MySQL配置允许远程连接(修改
- 默认端口为
常见问题解决
报错:Access denied for user 'root'@'localhost'
- 原因:密码错误或权限不足。
- 解决方案:
- 尝试用
sudo mysql -u root
跳过密码。 - 重置密码:
sudo mysql --skip-grant-tables & # 启动无验证模式 mysql -u root # 新终端登录 FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 尝试用
报错:Can't connect to local MySQL server
- 原因:MySQL服务未运行。
- 解决:
sudo systemctl status mysql # 检查状态 sudo systemctl restart mysql # 重启服务
报错:Command 'mysql' not found
- 原因:未安装MySQL客户端。
- 解决:
sudo apt install mysql-client # Ubuntu/Debian sudo yum install mysql # CentOS/RHEL
安全建议
- 避免使用root远程登录
创建专用账户并限制权限:CREATE USER 'user'@'%' IDENTIFIED BY '强密码'; GRANT SELECT,INSERT ON 数据库.* TO 'user'@'%';
- 删除测试数据库
DROP DATABASE test;
- 定期更新密码
ALTER USER 'user'@'localhost' IDENTIFIED BY '新密码';
- 本地快速登录:
sudo mysql -u root
- 密码验证登录:
mysql -u 用户名 -p
- 远程登录需指定IP和端口,并配置权限。
掌握这些操作后,您可高效管理数据库,首次使用建议从本地登录开始,逐步尝试远程连接。
引用说明:本文方法基于MySQL 8.0官方文档的客户端连接指南及Linux权限管理实践,安全建议参考OWASP数据库安全规范。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6566.html