orangepi部署web环境
orangepi web环境搭建
- mysql安装
- mysql卸载
- FTP安装
- java安装
- tomcat安装
- Maven配置
mysql安装
查看MySQL安装包
接下来可以使用以下命令安装MySQL服务器:
- 安装MySQL 8.0
# 安装最新版本
sudo apt install -y mysql-server
# 安装指定版本
sudo apt install -y mysql-server-8.0
-
初始化配置信息
sudo mysql_secure_installation
-
VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security Would you like to setup VALIDATE PASSWORD component?(使用密码强校验组件)-> n
- (如果输入y 之后会让你选level 0/1/2,跳过为root设置密码,因为默认情况下使用auth_socket进行身份验证)
- 输入n、不使用校验组件,请你直接设置密码、之后用
sudo mysql -u root -p
进行登录
-
New Password:(设置新密码,并重复一遍)
-
Remove anonymous users (删除匿名用户) n
-
Disallow root login remotely(拒绝远程root账号登录) n
-
Remove test database and access to it(移除test数据库) n
-
Reload privilege tables now (现在就重新载入权限表) y
之前没有设置密码
使用sudo mysql -u root
登录
- 设置密码(该步骤适用 启动密码校验组件)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
# 密码必须8位
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看密码策略
show variables like 'validate_password%';
修改策略
是因为之前设置的等级为medium,要求长度>= 8、数字、混合大小写和特殊字符
SET GLOBAL validate_password.policy = 'LOW';
# 设置密码策略为低
查看当前密码长度
select @@validate_password_length;
select @@validate_password_length;
±---------------------------+
| @@validate_password.length |
±---------------------------+
| 8 |
±---------------------------+
1 row in set (0.00 sec)
设置密码长度
# -- 密码长度
set global validate_password.length=6;
#-- 密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;
#-- 密码至少要包含的数字个数。
set global validate_password.number_count=0;
#-- 密码至少要包含的特殊字符数
set global validate_password.special_char_count=0;
- 更改默认 root 用户的认证方法(如有必要):
默认情况下,MySQL 使用 auth_socket 组件对 root 进行身份验证,这可能会阻止远程登录。要改为使用密码认证,请执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'SSKS#dd';
FLUSH PRIVILEGES;
查看当前mysql的用户
SELECT User, Host FROM mysql.user;
mysql> SELECT User, Host FROM mysql.user;
±-----------------±----------+
| User | Host |
±-----------------±----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
±-----------------±----------+
5 rows in set (0.00 sec)
-
创建一个允许远程访问的 root 用户:
接下来,创建一个与您的 root 用户相同权限的用户,但允许从任何主机连接。6.1 不再另外创建root,直接使用mysql创建的root用户
开启访问权限
update user set Host='%' where User='root';
授予权限
GRANT ALL ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; # 刷新权限
创建自己的root用户
CREATE USER 'root'@'%' IDENTIFIED BY 'SSKS#dd';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql> CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘123456’;
Query OK, 0 rows affected (0.10 sec)mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.11 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)mysql> SELECT User, Host FROM mysql.user;
±-----------------±----------+
| User | Host |
±-----------------±----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
±-----------------±----------+
6 rows in set (0.00 sec)
- 修改 MySQL 配置以允许远程连接:
编辑 MySQL 配置文件,通常在 /etc/mysql/mysql.conf.d/mysqld.cnf` 或
/etc/mysql/my.cnf`。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address 和mysqlx-bind-address项,把127.0.0.1更改为 0.0.0.0 或注释掉这两行,以允许从任何 IP 地址连接。
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0 # 这个步骤也不不设置
使用Navicat 17登录
连接成功
设置密码
# 登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。
mysql -uroot -p
# 设置密码 mysql8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 设置密码 mysql5.7
set password=password('新密码');
# 配置IP 5.7
grant all privileges on *.* to root@"%" identified by "密码";
# 刷新缓存
flush privileges;
详细
# 8.将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
use mysql;
update user set host='%' where user='root';
flush privileges;
# 9.将用户root密码设置123456并且为永不过期
alter user 'root'@'%' identified by '123456' password expire never;
# 10.将root用户密码加密方式改为mysql_native_password
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
退出命令行
exit
注意:配置8.0版本参考:我这里通过这种方式没有实现所有IP都能访问;我是通过直接修改配置文件才实现的,MySQL8.0版本把配置文件 my.cnf 拆分成mysql.cnf 和mysqld.cnf,我们需要修改的是mysqld.cnf文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
datadir = /var/lib/mysql
log_error = /var/log/mysql/error.log
使用tail命令查看日志文件
tail -f /var/log/syslog
Ctrl + C 退出
修改 bind-address,保存后重启MySQL即可。
bind-address = 0.0.0.0
重启MySQL重新加载一下配置:
sudo systemctl restart mysql
mysql卸载
停止 MySQL 服务:
首先,停止 MySQL 服务以确保所有 MySQL 进程都已终止。
sudo systemctl stop mysql
卸载 MySQL 软件包:
使用 apt-get 命令卸载 MySQL 服务器及其相关软件包。
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
这将卸载 MySQL 服务器、客户端以及所有相关的依赖包,并清除安装包缓存。
删除配置和数据文件:
删除 MySQL 的配置文件和数据目录。这一步是必要的,因为 apt-get remove --purge 可能不会删除所有文件。
/etc/mysql
存放 debian.cnf
存放的是密码
/var/lib/mysql
这个目录通常是 MySQL 数据库的默认数据目录,保存了数据库的数据文件、日志文件和其他相关文件
sudo rm -rf /etc/mysql /var/lib/mysql
sudo rm -rf /var/log/mysql
删除 MySQL 用户和组(可选):
如果您希望删除 MySQL 用户和组,可以执行以下命令:
sudo deluser mysql
sudo delgroup mysql
检查是否还有遗留文件:
您还可以使用 find 命令来查找系统中可能遗留的与 MySQL 相关的其他文件,并手动删除它们。
sudo find / -iname 'mysql*' -exec rm -rf {} \;
改错
查看mydql状态
systemctl status mysql
The designated data directory /var/lib/mysql/ is unusable
查看mysql日志
tail -f /var/log/mysql/error.log
tail: cannot open ‘/var/log/mysql/error.log’ for reading: No such file or directory
tail: no files remaining
也就是说,用户没有error的读写权限,需要就目录的所有者设置为mysql
第一次执行
sudo mysqld --initialize
这个命令将:
- 创建一个新的 MySQL 数据目录(通常是
/var/lib/mysql
或/var/log/mysqld.log
或 你在 MySQL 配置文件中指定的其他路径)。 - 在数据目录中初始化数据库文件。
- 创建一个默认的 mysql 数据库。
- 生成一个随机的根用户密码,并将其写入错误日志文件中。
- 权限和目录:确保 MySQL 数据目录的权限设置正确。数据目录应该由 MySQL 用户拥有
- 常见选项
–initialize-insecure:如果你不希望生成根用户密码,可以使用这个选项。这会初始化数据库而不设置 root 密码,允许你之后通过手动设置密码来配置 root 用户。
sudo mysqld --initialize-insecure
–datadir:指定数据库数据目录的路径。如果你希望将数据存储在不同的位置,可以使用此选项。
sudo mysqld --initialize --datadir=/path/to/your/datadir
–user:指定运行 mysqld 的用户。默认情况下,这个命令会以 mysql 用户运行。如果需要以其他用户身份运行,可以使用此选项。
sudo mysqld --initialize --user=mysql
打不开该文件
Could not open file ‘/var/log/mysql/error.log’ for error logging: No such file or directory
创建error.log
发现没有该文件
cd /var/log
mkdir /var/log/mysql
cd /var/log/mysql
touch error.log
# 更改权限、
chmod 777 error.log
设置开机自启
systemctl enable mysql
# Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
# Executing: /lib/systemd/systemd-sysv-install enable mysql
/lib/systemd/systemd-sysv-install
是一个系统工具,用于在 System V 初始化脚本(SysV init scripts)和 systemd 之间进行转换和兼容性处理。当您运行 systemctl enable mysql
命令时,系统会调用 /lib/systemd/systemd-sysv-install
这个脚本来处理将 SysV 初始化脚本转换为 systemd 服务的操作。
具体来说,在这种情况下,/lib/systemd/systemd-sysv-install
脚本会做以下事情:
- 执行检测:检查是否存在 SysV 初始化脚本(例如
/etc/init.d/mysql
)以确保能够进行转换和设置。- 创建符号链接:在 systemd 的服务目录下创建一个符号链接,将 SysV 初始化脚本连接到 systemd 服务单元文件(例如
/etc/systemd/system/mysql.service
)。- 启用服务:启用新创建的 systemd 服务,使其在系统启动时自动启动。
查看正在启动的服务
netstat -tunlp
netstat -tunlp | grep mysql
再次执行
sudo mysqld --initialize
没有报错
尝试启动,还是报错
查看日志cat /var/log/mysqld.log
这是另外一个日志信息,还是没有该文件
cat: /var/log/mysqld.log: No such file or directory
touch mysqld.log
chmod 777 /var/log/mysqld.log
现在的日志信息
/var/log/mysql/error.log
/var/log/mysqld.log
查看上次创建error.log文件之后,initialize的错误信息
数据目录从未使用
删除
rm -rf /var/lib/mysql/*
第三次
再次执行sudo mysqld --initialize
mysql用户无法写入
修改权限
sudo chmod -R 755 /var/log/mysql/
递归的将/var/log/mysql/目录下的所有文件和子目录权限设置为755
再次启动sudo mysqld --initialize
无问题
再次启动
systemctl start mysql
总结一波
ERROR 2
NO such file or directory
原因是没有创建日志目录 /var/log/mysql/error.log
虽然之前安装的时候能使用,但是后来改了默认配置vim /etc/mysql/mysql.conf.d/mysqld.cnf
增加了日志目录log_error
,但是没有创建目录,导致启动失败。
创建完目录
mysql服务启动失败
systemctl list-units --type=service # 命令列出所有服务单元
查·看mysql安装信息
dpkg -l | grep mysql
检查 MySQL 进程:
ps -ef | grep mysql
卸载mysql
- 停止 MySQL 服务:打开终端,并以管理员权限执行以下命令来停止 MySQL 服务:
sudo systemctl stop mysql
- 使用 APT 卸载 MySQL 软件包:执行以下命令来卸载 MySQL 软件包:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
这将卸载 MySQL 服务器、客户端和共享组件。
- 清理残留文件:执行以下命令来清理残留文件:
sudo apt-get autoremove
sudo apt-get autoclean
- 删除 MySQL 数据目录:MySQL 数据目录通常位于
/var/lib/mysql
,可以执行以下命令删除它:
sudo rm -rf /var/lib/mysql
请务必在删除之前备份任何重要的数据。
- 清理配置文件和日志文件:执行以下命令来清理配置文件和日志文件:
sudo rm -rf /etc/mysql /var/log/mysql
FTP安装
sudo apt-get install vsftpd
# 设置开机启动并启动ftp服务
systemctl enable vsftpd
systemctl start vsftpd
启动
#查看其运行状态
systemctl status vsftpd
#重启服务
systemctl restart vsftpd
修改配置文件
#修改配置
sudo nano /etc/vsftpd.conf
存在的修改成酱紫:
listen=NO # 阻止 vsftpd 在独立模式下运行
listen_ipv6=YES # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置
anonymous_enable=NO # 关闭匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 启用可以修改文件的 FTP 命令
local_umask=022 # 本地用户创建文件的 umask 值
dirmessage_enable=YES # 当用户第一次进入新目录时显示提示消息
xferlog_enable=YES # 一个存有详细的上传和下载信息的日志文件
connect_from_port_20=YES # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)
xferlog_std_format=YES # 保持标准日志文件格式
pam_service_name=vsftpd # vsftpd 将使用的 PAM 验证设备的名字
最后添加:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
————————————————
创建传输文件夹
sudo useradd -d /home/ftp/ftp_root -m ftpadmin
#创建新用户,home目录设置为/home/ftp/ftp_root
sudo passwd ftpadmin
#新用户设置密码
输入密码:
再次输入密码:
chmod -R 777 /home/ftp/ftp_root
# 将"/home/ftp/ftp_root"目录下的所有文件和子目录的权限都设置为最大权限
# 即所有用户都可以读取、写入和执行这些文件
777表示文件/文件夹的所有者,所有组,其他用户设置为可读,可写,可执行的权限
查看文件的权限
ls -ld /opt
drwxr-xr-x 6 root root 4096 Jun 5 22:01 /opt
用户 HwHiAiUser
的用户 ID(UID)为 1000
,用户组 ID(GID)也为 1000
。
此用户还属于 HwDmUser
用户组(GID 为 1101
)和 HwBaseUser
用户组(GID 为 1102
)。
如果你想给用户 HwHiAiUser
添加写权限,你可以使用 chmod
命令,例如:
chmod u+w /opt # 为HwHiAiUser添加写入权限
这将为 HwHiAiUser
用户添加 /opt
目录的写权限。如果你想给 HwHiAiUser
用户组添加写权限,你可以执行以下命令:
chmod g+w /opt
java安装
下载地址
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
下载之后
上传/opt
解压缩
sudo tar -zxvf jdk-8u401-linux-aarch64.tar.gz
更改环境变量
vim /etc/profile
最后一行添加
export JAVA_HOME=/usr/local/jdk1.8.0_401 #这里写自己的路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib # 设置了 Java 的类路径,. 表示当前目录,${JAVA_HOME}/lib 和 ${JRE_HOME}/lib 分别添加了 JDK 和 JRE 的库文件路径
export PATH=.:${JAVA_HOME}/bin:$PATH # PATH 设置了可执行文件的搜索路径,${JAVA_HOME}/bin 将 Java 可执行文件的路径添加到了系统路径中
export JAVA_HOME=/usr/local/jdk1.8.0_401
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # CLASSPATH 指定了特定的 JAR 文件,通常是项目所需的依赖库文件
export PATH=$JAVA_HOME/bin:$PATH
激活环境变量
source /etc/profile
测试java
java -version
tomcat安装
下载地址
Index of /dist/tomcat/tomcat-7/v7.0.96/bin (apache.org)
选择bin目录下的tar包
配置tomcat
cd /usr/local/apache-tomcat-7.0.96/conf
vim server.xml
打开vim server.xml配置文件,找到配置8080端口的位置,在节点末尾添加URIEncoding="UTF-8"
:wq退出保存
启动
/usr/local/java/apache-tomcat-7.0.96/bin
./startup.sh # 执行
通过内网地址加端口访问
http://192.168.43.224:8080/
添加开机自启
首先,使用 root 权限登录到系统,并切换到 /etc/systemd/system
目录:
cd /etc/systemd/system
然后创建一个名为 tomcat.service
的文件并编辑它:
sudo nano tomcat.service
[Unit]
Description=Tomcat Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1/8.0_401"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
Environment="CATALINA_HOME=/usr/local/apache-tomcat-7.0.96"
ExecStart=/usr/local/apache-tomcat-7.0.96/bin/catalina.sh start
ExecStop=/usr/local/apache-tomcat-7.0.96/bin/catalina.sh stop
RestartSec=3
[Install]
WantedBy=multi-user.target
保存并关闭文件后,重新加载 systemd 管理的单元文件,使新的 Tomcat 服务配置生效:
sudo systemctl daemon-reload
现在你可以使用以下命令来启动、停止和管理 Tomcat 服务:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
sudo systemctl enable tomcat # 设置开机自启
sudo systemctl disable tomcat # 取消开机自启
sudo systemctl status tomcat # 查看服务状态
查看端口占用
ps aux | grep tomcat
kill -9 33446 # -9是指定的信号编号,代表SIGKILL信号
删掉还是没用
systemctl status tomcat
查看日志信息
more /usr/local/apache-tomcat-7.0.96/logs/catalina.out
发现java环境配置错了
重新配置
systemctl daemon-reload
systemctl start tomcat
systemctl staus tomcat
Maven配置
maven下载
https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/
maven配置
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.8.8
export PATH=${MAVEN_HOME}/bin:$PATH
source /etc/profile
测试
mvn -v
快速安装脚本
# 检查是否已安装 Maven
if ! command -v mvn &> /dev/null; then
# 如果未安装,则下载、安装并设置环境变量
cd /home/zenglg
wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz --no-check-certificate
tar vxf apache-maven-3.9.5-bin.tar.gz
rm -rf /usr/local/maven3
mv apache-maven-3.9.5 /usr/local/maven3
# 设置环境变量
MAVEN_HOME="/usr/local/maven3"
echo "export MAVEN_HOME=${MAVEN_HOME}" >> /etc/profile
echo "export PATH=${PATH}:${MAVEN_HOME}/bin" >> /etc/profile
source /etc/profile
# 检查是否成功设置环境变量
if [[ ":$PATH:" == *":${MAVEN_HOME}/bin:"* ]]; then
echo "Maven 已安装并设置环境变量成功."
else
echo "设置 Maven 环境变量失败."
fi
else
echo "Maven 已安装."
fi
maven 本地仓库