前提条件
-
已安装MySQL服务
通过包管理器安装(如Ubuntu/Debian的apt
、CentOS/RHEL的yum
):# Ubuntu/Debian sudo apt update && sudo apt install mysql-server # CentOS/RHEL sudo yum install mysql-server
-
确保MySQL服务已启动
sudo systemctl start mysql # 启动服务 sudo systemctl status mysql # 验证状态
-
拥有MySQL用户凭证
默认使用root
用户,或已创建的其他用户(需知道用户名和密码)。
进入MySQL命令行的详细步骤
方法1:使用root用户登录(推荐管理员操作)
mysql -u root -p
-u root
:指定用户名为root
(可替换为其他用户)。-p
:触发密码输入提示(输入时密码不可见)。
成功登录后,终端显示mysql>
提示符。
方法2:指定主机和端口(适用于远程或自定义配置)
mysql -u 用户名 -p -h 主机地址 -P 端口号
-h 127.0.0.1
:若MySQL部署在远程服务器,替换为实际IP。-P 3306
:默认端口为3306,非默认时需指定。
方法3:免交互登录(脚本场景适用)
mysql -u root -p密码 # 不推荐!密码暴露在命令历史中
安全警告:此方式可能泄露密码,建议改用:
mysql --defaults-file=~/.my.cnf # 将密码存储于配置文件(权限设为600)
常见问题及解决方案
-
报错:
Access denied for user
- 检查用户名/密码是否正确。
- 确认用户权限:
root
用户需本地登录权限(默认允许localhost
)。 - 解决方案:重置密码(见下文)。
-
报错:
Can't connect to local MySQL server
- MySQL服务未启动:运行
sudo systemctl start mysql
。 - 端口被占用:检查
3306
端口是否监听netstat -tuln | grep 3306
。
- MySQL服务未启动:运行
-
忘记root密码
步骤:sudo systemctl stop mysql # 停止服务 sudo mysqld_safe --skip-grant-tables & # 启动无密码验证模式 mysql -u root # 无密码登录
在MySQL命令行内重置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES;
退出后重启服务:
sudo systemctl restart mysql
。
安全操作建议
- 避免使用root账户日常操作
创建普通用户并授权:CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码'; GRANT ALL PRIVIVILEGES ON 数据库名.* TO '用户名'@'localhost';
- 退出命令行
输入exit
或\q
安全退出。 - 密码保护
禁止在命令行直接明文输入密码,推荐使用mysql_config_editor
加密存储凭证:mysql_config_editor set --login-path=client --user=用户名 --password
进入MySQL命令行的核心命令是 mysql -u 用户名 -p
,成功的关键在于:
- 确保MySQL服务运行正常。
- 使用正确的用户名和密码。
- 根据场景选择登录方式(本地/远程)。
重要提示:生产环境中务必遵循最小权限原则,定期备份数据,并避免敏感信息泄露,操作数据库前建议查阅MySQL官方文档获取最新安全指南。
本文参考MySQL 8.0官方操作手册及Linux系统管理最佳实践,技术细节以实际环境为准,操作前请做好数据备份。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5766.html