项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接
在运行jar包时出现了这样的错误
查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码
1.为Redis设置密码(匹配客户端配置)
步骤:
1).修改Redis配置
编辑Redis配置文件 redis.conf
:
requirepass yourpassword # 取消注释并设置密码
2).Redis绑定地址:
检查 redis.conf
中的 bind
选项:
bind 0.0.0.0 # 允许所有IP访问
3).重启Redis使配置生效
sudo systemctl restart redis
2.发现配置文件未生效
redis-cli 127.0.0.1:6379> CONFIG GET requirepass 1) "requirepass" 2) "" # 显示空表示无密码
查看Redis进程发现有多余进程,删除
重启发现修改已经生效(注意需要使用 redis-server redis.conf)
MySQL无法正确连接
首先发现MySQL一直启动失败,多次尝试后,选择将MySQL重装
1.删除多余进程
# 查找所有 MySQL 相关进程
sudo ps aux | grep mysql# 强制终止残留进程
sudo kill -9 63473 63477# 验证是否清理完成(应只有 grep 进程)
sudo ps aux | grep mysql
2. 移除锁文件(关键步骤)
MySQL 启动失败通常由残留锁文件引起:
sudo rm -f /var/lib/mysql/mysql.sock.lock
sudo rm -f /var/run/mysqld/mysqld.pid
3. 检查权限
确保 MySQL 数据目录权限正确:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
4.尝试修复系统表
sudo systemctl stop mysqld sudo mysqld --initialize-insecure --user=mysql
sudo systemctl start mysqld
root用户无法正确登录
1.重置 root 密码(使用安全模式)
# 停止 MySQL 服务(如果正在运行)
sudo systemctl stop mysqld# 以安全模式启动 MySQL(跳过权限检查)
sudo mysqld_safe --skip-grant-tables --skip-networking &# 等待几秒让服务启动
sleep 5# 连接到 MySQL 服务器(无需密码)
mysql -u root
2.在 MySQL 中重置密码
-- 刷新权限表
FLUSH PRIVILEGES;-- 对于 MySQL 5.7
UPDATE mysql.user SET authentication_string=PASSWORD('您的新密码') WHERE User='root';-- 对于 MySQL 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY '您的新密码';-- 刷新权限
FLUSH PRIVILEGES;
exit;
3.重启 MySQL 并验证
# 结束安全模式进程
sudo mysqladmin -u root shutdown# 启动 MySQL 服务
sudo systemctl start mysqld# 使用新密码登录
mysql -u root -p
Tomcat 服务器无法启动
因为需要绑定的端口(默认是 8080)已经被其他应用程序占用。
通过启动参数修改端口
直接在运行命令中指定端口:
java -jar your-app.jar --server.port=9090
特点:
- 即时生效
- 无需重新编译或打包
- 不会影响原始 Jar 文件
- 非常适合临时调整环境配置