将MySQL套接字文件重定位到RAM

时间:2017-04-04 19:32:35

标签: mysql sockets

两年多来,我一直在为我的儿子做一个项目,在那里我使用Raspberry Pi 2运行Raspbian Jessie来控制他阁楼里鼓风机的速度。这个想法是通过阁楼通风来调节炎热天气的温度,同时不要过度通风和浪费能源。鼓风机控制程序已成功运行了大约一年。在过去一年的大部分时间里,我一直在尝试添加一个MySQL数据库来维护过去24小时内10个参数的288条记录(每5分钟一条记录),所以在任何时候,我都可以查看这些数据并查看系统一直在执行。由于系统连续运行(24/365),我担心闪存卡的紧凑寿命。由于数据仅涵盖最后一天并在一天内重新创建,因此我并不担心电源故障会导致丢失。  在启动时,我运行一个例程(Main.py),它将MySQL数据文件和空白表复制到RAM,MySQL可以正常工作。接下来,我修改了Main.py,将mysqld.sock和mysqld.pid放在RAM中。我在/etc/mysql/my.cnf和/etc/mysql/dedian.cnf中修改了以下项目,如下所示: /etc/mysql/my.cnf

[client], [mysqld_safe]
Original:   socket      =  /var/run/mysqld/mysqld.sock  
Modified:   socket      = /var/tmp/run/mysqld/mysqld.sock

[mysqld]
Original:   pid-file        = /var/run/mysqld/mysqld.pid        
Modified:   pid-file        = /var/tmp/run/mysqld/mysqld.pid

Original:   socket      = /var/run/mysqld/mysqld.sock       
Modified:   socket      = /var/tmp/run/mysqld/mysqld.sock

Original:   datadir     = /var/lib/mysql
Modified:   datadir     = /var/tmp/mysql/ControlData
        Note: ControlData is the name of my MySQL database

/etc/mysql/debian.cnf
[client], [mysql_upgrade]
Original:   socket      =  /var/run/mysqld/mysqld.sock  
Modified:   socket      = /var/tmp/run/mysqld/mysqld.sock

对/etc/mysql/my.cnf和/etc/mysql/dedian.cnf执行上述修改后,现在当我运行BlowerControl时,出现以下错误:

追踪(最近一次通话):   File" /home/pi/RasPiConnectServer/local/BlowerControl.py" ;, 404行in     con = mdb.connect(host =" localhost",user =" ControlMonitor",passwd =" 02121945",db =" ControlData")   文件" /usr/lib/python2.7/dist-packages/MySQLdb/ init .py",第81行,在Connect中     return Connection(* args,** kwargs)   文件" /usr/lib/python2.7/dist-packages/MySQLdb/connections.py",第187行, init     super(Connection,self)。 init (* args,** kwargs2) OperationalError:(2002,"无法通过套接字连接到本地MySQL服务器' /var/run/mysqld/mysqld.sock'(2)")

似乎有些东西仍在告诉MySQL在/var/run/mysqld/mysqld.sock而不是/var/tmp/run/mysqld/mysqld.sock中建立套接字连接。我已经做了大量的搜索并得出结论,问题可能与/usr/lib/python2.7/dist-packages/MySQLdb/connections.py中的** kwargs2有关。我在这里和其他地方尝试过很多变化而没有成功。

我非常感谢任何人都可以提供帮助。如果有人愿意提供帮助,我很乐意通过电子邮件发送我的BlowerControl.py和Main.py程序。

0 个答案:

没有答案