前言
树莓派在家里已经用了两周了,目前媒体服务JellyFin+Deluge+Samba用的很开心;Rstudio的docker也用了五年了,不过arm下可能会有包装不上的问题;外接1T的SSD后MySQL跑的也很舒服,终于可以把手上的数据整理整理了!依稀记得一年多前用堪萨斯的24核独服跑数据库,当时做了不少无用功啊:
最近在构建气象数据库,数据量2000亿行,内含从1901年到现在的全球近3万站点的逐小时气象数据,有兴趣的可以去看看: https://clidb.org 数据结构的设计和查询优化真的是费了我不少心思,过几天有空可以来写写心得,不过本篇的重点还是在大数据导出导入过程中遇到的坑。 由于为了加速查询,我分了4个数据库、每个库3万个表,每个表12个分区,于是就出现了Errcode: 24 "Too many open files" when using LOCK TABLES这个问题。 其实解决办法很简单,加上参数就好:--skip-lock-tables 跳过lock table的步骤。 This article is under CC BY-NC-SA 4.0 license. Please quote the original link:https://www.liujason.com/article/163.html
mysql批量修改表名前缀 1、把全部表名前缀wp_改成wordpress_ SELECT GROUP_CONCAT (CONCAT( ‘ALTER TABLE ‘ , TABLE_NAME, ‘ RENAME TO ‘, REPLACE( TABLE_NAME,‘wp_’ ,‘wordpress_’)) SEPARATOR ‘;’) FROM information_schema .TABLES WHERE table_schema =‘wordpress’ AND table_type =‘BASE TABLE’ AND TABLE_NAME LIKE ‘wp_%’ ; 2、去掉全部表名前缀wordpress_ SELECT GROUP_CONCAT (CONCAT( ‘ALTER TABLE ‘ , TABLE_NAME, ‘ RENAME TO ‘, REPLACE( TABLE_NAME,‘wordpress_’ ,”)) SEPARATOR ‘;’) FROM information_schema .TABLES […]
由于换了24核的服务器,因此在录入爬取的气象数据的时候想使用多线程,于是自学多线程Python的写法,中间就遇到了这个错误:Packet sequence number wrong 这是因为多线程共享了同一个数据库连接,但每个execute前没有加上互斥锁,解决方法如下: 方法一:每个execute前加上互斥锁 lock.acquire() cursor.execute(command,data) lock.release() 方法二: 每个线程拥有自己的数据库连接,即在线程调用函数中加上数据库连接代码 方法三: 所有线程共用一个连接池,需要考虑线程总数和连接池连接数上限的问题 这里我使用的是方法二,因为这样效率最高不用等待其他的线程执行完,实际上只需要把db和cur的全局变量名改为函数内的变量名即可。 This article is under CC BY-NC-SA 4.0 license. Please quote the original link:https://www.liujason.com/article/215.html
不不不上面这些都不是本文的重点,除了日常用用docker服务外怎么能少了Nginx和PHP呢?不过为了方便还是使用宝塔作为管理面板。
安装宝塔
我的树莓派没有装64位系统,因此只能安装5.9版本的宝塔:
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
安装时间总共3分钟,但是后续安装nginx和php的时间就比较长了...
遇到的问题
1. 安装时间真的非常的长....体会一下...不出错的条件下安装需要将近4小时
2. Nginx安装后不显示
因为缺少了正确版本的GD库,需要手动安装上去。然后重启宝塔服务
sudo apt-get install libgd-dev -y /etc/init.d/bt restart
3. MySQL安装失败
看了下日志报错,timeout,重新安装一次就正常了,应该是网络波动吧。