2
0
Files
build.wfc/docs/99-reference/tips.md
zhangsz ef78a209a4 ...
2025-04-28 19:01:34 +08:00

7.4 KiB
Raw Blame History

Tips list

git tips

git clone by ssh

    git clone ssh://git@192.168.2.166:3122/WFC/build.wfc.git
    git remote set-url origin git@192.168.2.166:3122/zhangsz/WFC/be.wfc.git
# 1. 生成 SSH ed25519密钥对
ssh-keygen -t ed25519 -C "simon@omc-dev-openEuler"
# 2. 复制公钥内容
cat ~/.ssh/id_ed25519.pub
# 3. 将公钥添加到 Gitee 
# 登录 Gitee -> 设置 -> SSH 公钥 -> 添加公钥
# 4. 测试连接
ssh -T git@192.168.2.166 -p 3122

docker tips

使用 Docker 日志清理工具 你可以使用 Docker 提供的 docker system prune 命令来清理未使用的数据,包括日志文件:

    docker system prune -a

java

安装 java 1.8

sudo apt update
sudo apt install openjdk-8-jdk
java -version
sudo update-alternatives --config java  # 选择当前默认的java版本

mongodb

安装mongodb, omada sdn controller 和依赖

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update 
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
sudo dpkg -i omada_v5.15.6.7_linux_x64_20241128140044_1733188152890.deb 
sudo apt install --fix-broken 

devices

ap sn: 22475N7000767 mac: B0-19-21-7E-27-40

omada link

curl --location --request POST 'https://aps1-omada-northbound.tplinkcloud.com/openapi/authorize/token?grant_type=client_credentials'
--header 'Content-Language: en-US'
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)'
--header 'Content-Type: application/json'
--header 'Accept: /'
--header 'Host: aps1-omada-northbound.tplinkcloud.com'
--header 'Connection: keep-alive'
--data-raw '{ "omadacId": "10ccde5bfee5142b28a07f6146f41056", "client_id": "48b3be2083dd4fbdb5f7cfd5c3a4abb6", "client_secret": "2556dfcafe6d4288b3f0921aa6391c76" }'

curl --location --request POST 'https://192.168.2.249:8043/openapi/authorize/token?grant_type=client_credentials'
--header 'Content-Language: en-US'
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)'
--header 'Content-Type: application/json'
--header 'Accept: /'
--header 'Host: 192.168.2.249:8043'
--header 'Connection: keep-alive'
--data-raw '{ "omadacId": "f3aa6e479b94222581523710cc2c2a9d", "client_id": "5036e77c81a74008821c694a715fe2b8", "client_secret": "29faa06fb7f244b094377b48eb3083a7" }'

compile

mvn clean compile mvn clean package -P prod

mysql/mariadb tips

有几种方法可以在 MariaDB 10.5 中修改 root 密码:

方法1使用 mysql CLI已登录

如果你能以 root 用户登录 MariaDB

sudo mysql -u root -p

然后执行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

方法2安全模式重置无法登录时

  1. 停止 MariaDB 服务:
sudo systemctl stop mariadb
  1. 以跳过权限表的方式启动 MariaDB
sudo mysqld_safe --skip-grant-tables --skip-networking &
  1. 无需密码连接到 MariaDB
sudo mysql
  1. 设置新密码:
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;
  1. 停止并正常重启 MariaDB 服务:
sudo pkill mysqld
sudo systemctl start mariadb

方法3使用 mysql_secure_installation

这个工具可以帮助你重置 root 密码并优化一些安全设置:

sudo mysql_secure_installation

按照提示操作,其中会包括重置 root 密码的选项。

记得将示例中的 'new_password' 替换为你想要设置的实际密码。

simonzhangsz: ░░ The job identifier is 1143. Apr 27 10:40:45 omc-dev-oe22 mariadb-prepare-db-dir[9062]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done. Apr 27 10:40:45 omc-dev-oe22 mariadb-prepare-db-dir[9062]: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir. Apr 27 10:41:15 omc-dev-oe22 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE

GitHub Copilot: # MariaDB Service Failure Analysis

Your MariaDB service is failing to start with an exit status of 1. The logs indicate:

  1. The system believes the database is already initialized in mysql
  2. There may be an issue with the database files or configuration

Troubleshooting Steps

  1. Check MariaDB logs for more detailed error information:

    sudo journalctl -u mariadb -n 50
    

    or

    sudo cat /var/log/mysql/error.log
    
  2. Check permissions on the data directory:

    ls -la /var/lib/mysql
    

    Make sure the directory is owned by the mysql user:

    sudo chown -R mysql:mysql /var/lib/mysql
    
  3. Check disk space:

    df -h
    
  4. Try safe start to see if it provides more diagnostics:

    sudo mysqld_safe --skip-grant-tables
    
  5. Try repairing database files:

    sudo mysqlcheck --all-databases --repair --use-frm
    
  6. Reset permissions and restart:

    sudo chmod -R 755 /var/lib/mysql
    sudo chown -R mysql:mysql /var/lib/mysql
    sudo systemctl restart mariadb
    

If the database is corrupted, you might need to backup your data (if possible) and reinitialize:

sudo systemctl stop mariadb
sudo mv /var/lib/mysql /var/lib/mysql.bak
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo mysql_install_db --user=mysql
sudo systemctl start mariadb

After that, you would need to restore your databases from backup or recreate them.

simonzhangsz: 如何授权某些表的权限给用户

GitHub Copilot: # 如何授权某些表的权限给 MariaDB 用户

在 MariaDB 中,你可以为特定用户授予对某些表的权限。以下是完整的步骤:

1. 创建用户(如果尚不存在)

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

例如:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

2. 授予表级权限

基本语法:

GRANT permission1, permission2, ... ON database_name.table_name TO 'username'@'host';

常见权限类型

  • SELECT - 读取数据
  • INSERT - 插入数据
  • UPDATE - 更新数据
  • DELETE - 删除数据
  • ALTER - 修改表结构
  • CREATE - 创建表
  • DROP - 删除表
  • ALL PRIVILEGES - 所有权限

实例

授予用户对特定表的SELECT权限

GRANT SELECT ON mydb.mytable TO 'myuser'@'localhost';

授予用户对特定表的多个权限:

GRANT SELECT, INSERT, UPDATE ON mydb.mytable TO 'myuser'@'localhost';

授予用户对所有表的特定权限:

GRANT SELECT ON mydb.* TO 'myuser'@'localhost';

授予用户对多个表的权限:

GRANT SELECT ON mydb.table1 TO 'myuser'@'localhost';
GRANT INSERT ON mydb.table2 TO 'myuser'@'localhost';

3. 应用更改

授予权限后,刷新权限:

FLUSH PRIVILEGES;

4. 验证权限

查看用户权限:

SHOW GRANTS FOR 'myuser'@'localhost';

5. 撤销权限(如需)

REVOKE permission ON database_name.table_name FROM 'username'@'host';

例如:

REVOKE INSERT ON mydb.mytable FROM 'myuser'@'localhost';

确保在赋予权限时遵循最小权限原则,只给用户执行其工作所需的权限。