[rasp]Raspberry Pi 3B+ 安装 Ubuntu Server 和 Lubuntu 桌面

參考網址:https://blog.csdn.net/qq_19338977/article/details/108066246

ubuntu-22.04.2-preinstalled-server-armhf+raspi.img

apt install net-tools
apt install nmap
adduser pi
讓pi也可以無密碼sudo /etc/sudoers.d/90-cloud-init-users 加入 pi
apt install lubuntu-desktop
apt install lightdm
reboot 後會自動進入圖形介面
改hostname  /etc/hostname  reboot才能生效

===anydesk
wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key add -
echo deb http://deb.anydesk.com/ all main | sudo tee /etc/apt/sources.list.d/anydesk-stable.list
apt update 
apt install anydesk
 
Note: If after installing AnyDesk is not running or you get an error: While loading shared libraries: libpangox-1.0.so.0: cannot open shared object file: No such file or directory 
wget http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_amd64.deb 
apt install ./libpangox-1.0-0_0.0.2-5.1_amd64.deb


Authorization required, but no authorization protocol specified
service anydesk status 有這個錯誤
failed to open vchiq instance     
usermod -a -G video root
usermod -a -G video pi

===LAMP server
tasksel的選項變少了,只有web server 找不到 LAMP server
改用 apt install apache2 php-mysql libapache2-mod-php mysql-server php8.1

mysql mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

php網頁程式出現The server requested authentication method unknown to the client
https://blog.csdn.net/youcijibi/article/details/81153789
vi /etc/mysql/my.cnf加入
[mysqld]
default_authentication_plugin=mysql_native_password

安裝php5.6
http://dchesmis.blogspot.tw/2016/09/ubunt-1604php5x.html
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-gd php5.6-curl php5.6-zip
sudo php -v
 
http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php5.6/
         
從 php8.1 切換到 php5.6:
         sudo a2dismod php8.1 ; sudo a2enmod php5.6 ; sudo service apache2 restart
     CLI:
          sudo update-alternatives –set php /usr/bin/php5.6 

因要降級安裝php 所以phpmyadmin用下載的(不用apt 安裝)
v4.9.11

apt install firefox
apt install filezilla

終於搞定,但因效能太差,無法接受。

發表於 Linux系統 | 發表迴響

[ChatGPT]串接OpenAI ChatGPT API (GPT3.5)

參考網址:

Python
https://vocus.cc/article/6400b9c0fd89780001e8807c

到這裡產生自己的API KEY
https://platform.openai.com/overview

import os
import openai
openai.api_key = f'此處貼上你自己的API KEY'
while True:  
    completion = openai.ChatCompletion.create(
      model="gpt-3.5-turbo",
      messages=[
            {"role": "system", "content": "系統訊息,目前無用"},
            {"role": "assistant", "content": "此處填入機器人訊息"},
            {"role": "user", "content": input("You: ")}
        ]
    )
    print(completion.choices[0].message.content)

 

發表於 程式設計 | 發表迴響

[mysql]

參考網址:https://benjr.tw/103189

遠端機器是Mariadb,欲登入mysql 8.0時的錯誤訊息Plugin sha256_password could not be loaded: /usr/lib/arm-linux-gnueabihf/mariadb19/plugin/sha256_password.so: cannot open shared object file: No such file or directory

Authentication Plugin – SHA-256

目前 MySQL 5.6 與 MySQL 8.0 使用 sha256_password 認證方式,但是 MariaDB 並不支援

所以目前無解

發表於 Linux系統, 程式設計 | 發表迴響

[mysql]解決 MySQL Authentication plugin ‘caching_sha2_password’ cannot be loaded 錯誤

參考網址:LINUX 技術手札

這個是 MySQL 8 在遠端登入時可能出現的錯誤信息:

ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded

MySQL 8 預設的登入認證方式是 caching_sha2_password, 如果登入的電腦是安裝 MySQL 5.7 Client, 則是使用 mysql_native_password 登入認證, 產生兼容性問題, 解決方法有以下兩個.

解決方法 1:
把 MySQL 8 設定成繼續使用舊有的 mysql_native_password 登入, 開啟 /etc/my.cnf, 在 [mysqld] 段落設定認證方式:

開啟 /etc/my.cnf

  • # vi /etc/my.cnf

/etc/my.cnf

  • [mysqld]

     

    default_authentication_plugin=mysql_native_password

然後重新啟動 MySQL:

Restart MySQL

  • # systemctl restart mysql

解決方法 2:

如果不想回到舊有的認證方法, 可以修改現有帳號, 或新增一個新帳號, 指定登入地址及使用 mysql_native_password, 例如客戶端的 IP 是 192.168.1.111, 在本機登入 MySQL 後, 輸入以下 MySQL 指令:

1

ALTER USER 'db-user'@'192.168.1.111' IDENTIFIED WITH mysql_native_password BY 'db-password';

發表於 Linux系統 | 發表迴響

[mysql]升級MySQL 8.0的詭異故障,utf8mb4_0900_ai_ci是什麼?

參考網址:https://kknews.cc/zh-tw/code/63ya49m.html

中間的0900,它對應的是Unicode 9.0的規範

所以,utf8mb4_0900_ai_ci到底是個什麼東西呢?其實,它是個collation。

說起「字符集」,許多人想當然認為,給每個字符分配了一個編碼,並且能存儲、能傳輸,這就夠了。其實這當然不夠,我們不但需要給每個字符分配編碼,讓它們能存儲、能傳輸,還需要定義一套關係來組織它們,找到它們之間的聯繫。這套關係的定義,就是collation。

MySQL 8.0之後,默認collation不再像之前版本一樣是是utf8mb4_general_ci,而是統一更新成了utf8mb4_0900_ai_ci。

既然如此,解決辦法也很簡單,用alter table table_name collate utf8mb4_0900_ai_ci顯式統一所有表的collation,問題就解決了。

我們可以多想想,把character set和collation分開,到底有什麼好處?其實好處很多。如果把字符看作個人,character set就相當於驗明正身,給每個字符發張身份證,而collation相當於告訴大家,排隊的時候誰在前誰在後。collation有多套,就相當於可以靈活按身高、體重、年齡、出身地等等因素來排序,卻完全不會受到身份證號的干擾。

sed -e 's/要取代的文字/取代文字/' -i file

utf8mb4_0900_ai_ci替换为utf8_general_ci
sed -e 's/utf8mb4_0900_ai_ci/utf8_general_ci/' -i file

utf8mb4替换为utf8
sed -e 's/utf8mb4/utf8/' -i file
中間的0900,它對應的是Unicode 9.0的規範

 

原文網址:https://kknews.cc/code/63ya49m.html

中間的0900,它對應的是Unicode 9.0的規範

 

原文網址:https://kknews.cc/code/63ya49m.html

中間的0900,它對應的是Unicode 9.0的規範

 

原文網址:https://kknews.cc/code/63ya49m.html

發表於 程式設計 | 發表迴響

[ubuntu]啟用 ubuntu 20.04 /etc/rc.local

參考網址:https://helloworld.pixnet.net/blog/post/47874794-%E5%95%9F%E7%94%A8-ubuntu-20.04–etc-rc.local

ubuntu 20.04 預設重開機時無法啟用 /etc/rc.local
如果要重開機後執行的話,修改方式如下

1. 在檔案的最末端加入以下三行,存檔離開
sudo vi /lib/systemd/system/rc-local.service
[Install] 
WantedBy=multi-user.target
Alias=rc-local.service

2. 建立 rc.local
sudo vi /etc/rc.local
#!/bin/sh -e

echo `date` >> /tmp/reboot.log

exit 0

3. 加入可執行權限
sudo chmod u+x /etc/rc.local

4. 設定開機啟動,並手動啟用測試
sudo systemctl enable rc-local
sudo systemctl start rc-local


5. 檢視是否已啟用
sudo systemctl status rc-local
● rc-local.service – /etc/rc.local Compatibility
     Loaded: loaded (/lib/systemd/system/rc-local.service; enabled; vendor preset: enabled)
    Drop-In: /usr/lib/systemd/system/rc-local.service.d
             └─debian.conf
     Active: active (exited) since Fri 2021-09-17 01:53:56 UTC; 3s ago
       Docs: man:systemd-rc-local-generator(8)
    Process: 989234 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)

Sep 17 01:53:56 example systemd[1]: Starting /etc/rc.local Compatibility…
Sep 17 01:53:56 example systemd[1]: Started /etc/rc.local Compatibility.

6. 建立連結
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

7. 重開機
sudo reboot

發表於 Linux系統 | 發表迴響

[smarty]smarty裡直接樣版宣告變數方式

參考網址:https://sites.google.com/site/wanyutang/smarty/smartylizhijieyangbanxuangaobianshufangshi

{{assign var=xx value=0}}

or

{{assign var=xx value=$xx+3}}

 

在樣板中,Smarty 也可以直接拿PHP的函數來用,我們稱之為「變數修飾器」,例如:
變數後面要加上 |
| 後面加上函數名稱,函數需要的參數用 : 格開

例:得到檔案名稱

{{$SCRIPT_NAME|basename}}

{{$ulist.gov_allname|strlen}} 得到全銜的長度

 

發表於 程式設計 | 發表迴響

[mysql]留個紀錄好辦事 – Mysql Log (日誌紀錄)

參考網址:https://ithelp.ithome.com.tw/m/articles/10263180
 

查詢日誌- general log
注意點: 因為執行的所有行為操作都會紀錄到日誌中,log累積量會佔用很大的disk空間,請求量一多會產生不小的系統開銷影響效能! 所以在環境上通常不會啟用此日誌。

相關配置: my.cnf設定檔(/etc/mysql/my.cnf)

[mysqld]

#general log是否開啟(default:0禁用 / 1啟用)
general_log = 1
#查詢日誌路徑&檔名
general_log_file = /mnt/mysql_data/mysql/general.log
#指定日誌輸出目的地(default:FILE=記錄到general.log / TABLE=紀錄到mysql.general_log表)
log-output=TABLE

 

慢查詢日誌- slow log
注意點: 在開發的時候寫的SQL指令就算有測過執行時間,但如果遇到資料量不足的問題,雖然看起來沒問題但上線後資料量一大所造成的影響,執行秒數差異會越來越明顯。可能是表結構索引關係設計上又或者是SQL語法本身問題,透過slowlog能找出這些語法發現問題並做優化。
 

相關配置: my.cnf設定檔(/etc/mysql/my.cnf)

[mysqld]

#slow log是否開啟(1啟用/0禁用)
slow-query-log = 1
#慢查詢日誌路徑&檔名
slow_query_log_file=/mnt/mysql_data/mysql/slow.log
#執行超過x秒就紀錄 (EX: 1s)
long_query_time = 1

二进制日志

记录了所有对数据库执行更改的操作。不包括Select 和show等操作命令,想要查看只能通过查询日志。

 

發表於 程式設計 | 發表迴響

[flag]旗標書附程式下載

參考網址:https://www.flag.com.tw/VIP/Bonus

https://www.flag.com.tw/books/product/F2034
Python ✕ Excel 高效率打造辦公室作業+數據分析自動化

Ch07 Excel + Word 辨公室自動化與輸出 PDF

發表於 軟體使用 | 發表迴響

[python]用Python批量生成word版邀請函

參考網址:https://www.getit01.com/p20190616061067027/

發表於 程式設計, 軟體使用 | 發表迴響