前提条件
-
安装MySQL服务
若未安装MySQL,先执行以下命令:- Ubuntu/Debian:
sudo apt update sudo apt install mysql-server
- CentOS/RHEL:
sudo yum install mysql-server sudo systemctl start mysqld
- Ubuntu/Debian:
-
确保MySQL服务已启动
sudo systemctl status mysql # 检查状态 sudo systemctl start mysql # 若未运行则启动
进入MySQL的两种常用方式
方式1:使用root用户本地登录
-
无密码登录(初始安装后)
sudo mysql # 直接进入MySQL命令行
说明:部分系统(如Ubuntu)在安装时未设置root密码,需通过
sudo
权限进入。 -
密码登录(已设置密码)
mysql -u root -p # 回车后输入密码
-u
:指定用户名(如root
)。-p
:提示输入密码(密码输入时不可见)。
方式2:远程登录MySQL(需配置权限)
-
允许远程访问
在MySQL命令行中执行:CREATE USER '用户名'@'远程IP' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'远程IP' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 刷新权限
将
远程IP
替换为客户端IP(或允许所有IP)。 -
从另一台Linux机器登录
mysql -h 服务器IP -u 用户名 -p
-h
:指定MySQL服务器IP地址。
常见问题解决
问题1:忘记root密码
- 停止MySQL服务:
sudo systemctl stop mysql
- 启动免密模式:
sudo mysqld_safe --skip-grant-tables &
- 进入MySQL并重置密码:
mysql -u root # 无密码登录
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; EXIT;
- 重启MySQL:
sudo systemctl restart mysql
问题2:连接被拒绝(ERROR 1045)
- 检查用户名/密码是否正确。
- 确认用户是否有本地/远程登录权限(参考方式2的权限配置)。
- 检查防火墙是否放行3306端口:
sudo ufw allow 3306/tcp # Ubuntu sudo firewall-cmd --add-port=3306/tcp --permanent # CentOS
安全建议
- 避免使用root账户
日常操作建议创建普通用户:CREATE USER 'workuser'@'localhost' IDENTIFIED BY '强密码'; GRANT SELECT, INSERT ON 数据库名.* TO 'workuser'@'localhost';
- 隐藏命令行密码
使用-p
后不直接输入密码,防止密码泄露在历史记录中。 - 定期更新密码
使用强密码(字母+数字+符号),并定期更换。
- 本地登录:
sudo mysql
(无密码)或mysql -u root -p
(有密码)。 - 远程登录:需配置用户权限后使用
mysql -h IP -u 用户 -p
。 - 安全优先:最小化权限分配,避免敏感操作。
引用说明:本文参考MySQL 8.0官方文档的权限管理及Linux系统管理最佳实践,操作前请备份数据,生产环境建议结合具体需求调整权限策略。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5771.html