项目部署到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 文件
  • 非常适合临时调整环境配置