>

创造连接,占用超大空间的难题

- 编辑:正版管家婆马报彩图 -

创造连接,占用超大空间的难题

安装 pymysql 模块

前不久多少个月服务器总是翻来覆去当机,导致Bill盖子的可用性得不到保证。但说也意外,当机的时候,服务器能够健康连接,Nginx也左近日常,但就是PHP-FPM失去响应。后来无意中df -h一下,开掘:
rootfs 7.7G 7.7G 0 100% /

pip3 install pymysql# python2, 默认无 pip 命令# python3, 默认自带 pip3 命令 

根目录满了!便以为是日记太多,清理了下日志。但基本每种贰个周日志就能够满。弄得Bill盖子不得平稳。后来就把/var独立分区了,但依然不见效,有稍许占多少。也清理过/var/tmp和/var/cache,但作用如故轻巧。

mysql基本操作

明天,耐着个性du -ah,开采/var/lib/mysql占用空间极度,cd到这里ls -lh后开掘:
 -rw-rw---- 1 mysql mysql 5242880 Feb 27 14:49 ib_logfile0
 -rw-rw---- 1 mysql mysql 5242880 Dec 27 17:55 ib_logfile1
 -rw-rw---- 1 mysql mysql 588M Mar 12 02:03 maria_log.00000003
 -rw-rw---- 1 mysql mysql 52 Mar 12 01:54 maria_log_control
 drwx------ 2 mysql root 4.0K Jan 15 14:28 mysql
 -rw-rw---- 1 mysql mysql 20K Dec 27 17:54 mysqld-bin.000001
 -rw-rw---- 1 mysql mysql 715K Dec 27 17:54 mysqld-bin.000002
 -rw-rw---- 1 mysql mysql 625 Dec 28 11:46 mysqld-bin.000003
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:20 mysqld-bin.000004
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:20 mysqld-bin.000005
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000006
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000007
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000008
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000009
 -rw-rw---- 1 mysql mysql 20K Dec 27 18:22 mysqld-bin.000010
 -rw-rw---- 1 mysql mysql 715K Dec 27 18:22 mysqld-bin.000011
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:24 mysqld-bin.000012
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:25 mysqld-bin.000013
 -rw-rw---- 1 mysql mysql 125 Dec 27 18:27 mysqld-bin.000014
 -rw-rw---- 1 mysql mysql 125 Dec 28 09:55 mysqld-bin.000015
 -rw-rw---- 1 mysql mysql 125 Dec 28 11:41 mysqld-bin.000016
 -rw-rw---- 1 mysql mysql 125 Dec 28 11:42 mysqld-bin.000017
 -rw-rw---- 1 mysql mysql 125 Dec 28 12:07 mysqld-bin.000018
 -rw-rw---- 1 mysql mysql 1.4K Dec 28 12:49 mysqld-bin.000019
 -rw-rw---- 1 mysql mysql 125 Dec 28 16:31 mysqld-bin.000020
 -rw-rw---- 1 mysql mysql 107M Dec 28 18:30 mysqld-bin.000021
 -rw-rw---- 1 mysql mysql 1.2M Dec 30 09:22 mysqld-bin.000022
 -rw-rw---- 1 mysql mysql 125 Dec 30 09:26 mysqld-bin.000023
 -rw-rw---- 1 mysql mysql 3.8K Dec 30 12:29 mysqld-bin.000024
 -rw-rw---- 1 mysql mysql 59M Jan 11 21:34 mysqld-bin.000025
 -rw-rw---- 1 mysql mysql 10M Jan 14 15:16 mysqld-bin.000026
 -rw-rw---- 1 mysql mysql 186K Jan 15 05:16 mysqld-bin.000027
 -rw-rw---- 1 mysql mysql 21K Jan 15 14:46 mysqld-bin.000028
 -rw-rw---- 1 mysql mysql 13K Jan 15 15:12 mysqld-bin.000029
 -rw-rw---- 1 mysql mysql 62M Jan 17 16:36 mysqld-bin.000030
 -rw-rw---- 1 mysql mysql 63M Jan 18 17:10 mysqld-bin.000031
 -rw-rw---- 1 mysql mysql 125 Jan 18 17:16 mysqld-bin.000032
 -rw-rw---- 1 mysql mysql 21K Jan 18 17:23 mysqld-bin.000033
 -rw-rw---- 1 mysql mysql 118M Jan 22 12:41 mysqld-bin.000034
 -rw-rw---- 1 mysql mysql 209K Jan 22 12:59 mysqld-bin.000035
 -rw-rw---- 1 mysql mysql 117M Jan 28 11:59 mysqld-bin.000036
 -rw-rw---- 1 mysql mysql 125 Jan 28 13:46 mysqld-bin.000037
 -rw-rw---- 1 mysql mysql 24M Jan 28 16:01 mysqld-bin.000038
 -rw-rw---- 1 mysql mysql 460K Jan 28 16:10 mysqld-bin.000039
 -rw-rw---- 1 mysql mysql 7.0M Jan 28 16:52 mysqld-bin.000040
 -rw-rw---- 1 mysql mysql 2.3M Jan 28 17:12 mysqld-bin.000041
 -rw-rw---- 1 mysql mysql 2.1M Jan 28 17:27 mysqld-bin.000042
 -rw-rw---- 1 mysql mysql 173K Jan 28 17:37 mysqld-bin.000043
 -rw-rw---- 1 mysql mysql 378K Jan 28 17:44 mysqld-bin.000044
 -rw-rw---- 1 mysql mysql 79K Jan 28 17:50 mysqld-bin.000045
 -rw-rw---- 1 mysql mysql 272K Jan 28 18:12 mysqld-bin.000046
 -rw-rw---- 1 mysql mysql 156K Jan 28 18:15 mysqld-bin.000047
 -rw-rw---- 1 mysql mysql 962K Jan 28 18:33 mysqld-bin.000048
 -rw-rw---- 1 mysql mysql 43K Jan 28 18:40 mysqld-bin.000049
 -rw-rw---- 1 mysql mysql 28M Jan 29 11:43 mysqld-bin.000050
 -rw-rw---- 1 mysql mysql 125 Jan 29 11:46 mysqld-bin.000051
 -rw-rw---- 1 mysql mysql 139K Jan 29 12:37 mysqld-bin.000052
 -rw-rw---- 1 mysql mysql 135K Jan 29 12:44 mysqld-bin.000053
 -rw-rw---- 1 mysql mysql 409M Feb 9 23:18 mysqld-bin.000054
 -rw-rw---- 1 mysql mysql 482M Feb 17 09:37 mysqld-bin.000055
 -rw-rw---- 1 mysql mysql 542M Feb 27 12:30 mysqld-bin.000056
 -rw-rw---- 1 mysql mysql 125 Feb 27 12:31 mysqld-bin.000057
 -rw-rw---- 1 mysql mysql 125 Feb 27 14:48 mysqld-bin.000058
 -rw-rw---- 1 mysql mysql 854M Mar 13 12:08 mysqld-bin.000059
 -rw-rw---- 1 mysql mysql 1.1K Feb 27 14:49 mysqld-bin.index

# 导入 pymysql 模块import  pymysql# 创建连接conn = pymysql.connect(host='192.168.0.214', port=3306, user='root', passwd='123456', db='tmpdb')# 获取光标cursor = conn.cursor()# 以字典的形式返回结果# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 插入一行result = cursor.execute("insert into tmp values ",# 插入多行result = cursor.executemany("insert into tmp values ",[,,])# 修改后必须提交conn.commit()# 获取一行数据cursor.execute('select * from tmp')r = cursor.fetchone# 获取4行数据cursor.execute('select * from tmp')r = cursor.fetchmanyprint# 获取影响的行数result = cursor.execute('select * from tmp')print# 获取所有的值values = cursor.fetchall()print# 把光标移到最开始处cursor.scroll(0, mode='absolute')# 关闭光标cursor.close()# 关闭连接conn.close()

上帝老天爷,那几个log和bin都是怎么玩意儿?!最后找到资料:
mysql-bin.000001、mysql-bin.000002等公事是数据库的操作日志,比如UPDATE贰个表,可能DELETE一些数码,纵然该语句未有相称的数目,这么些命令也会积存到日志文件中,还包涵种种语句推行的年华,也会记录步入的。这根本是用于操作核查和繁多据库同步的。ib_logfile则是用来记录InnoDB的表一致性的,独有在当机后工夫发挥功能。maria_log.00000003则是Bill盖子使用的MariaDB特有的文本,成效也大致。

在操作mysql中应有禁止行使字符串拼接sql 的艺术

不过比较尔盖子来说,未有基本数据库,也不用核查操作,这几个文件完全没有别的用处!由此,首先清理一下这个文件。然后编辑mysql配置文件,组织其再记录那么些日记,铲草除根。Gentoo的MySQL日志在/etc/mysql/my.cnf。把里面包车型大巴log-bin这一行注释掉。

# 禁止例子 :inp = input('please input name: ')sql = 'insert into tmp values'sql = sql %r = cursor.executeconn.commit()# 推荐例子:inp = input('please input name: ')print(inp, typer = cursor.execute('insert into tmp values', inp)conn.commit()# 获取所插入数据的主键id值,注意表的 id 必须是 AUTO_INCREMENTnid = cursor.lastrowidprint

然后重启MySQL服务器,难点解决!可用空间须臾间扩大数GB!

补充

作者 biergaizi2009

# 数据库也可以通过以下方式连接import  pymysqlPY_MYSQL_CONN_DICT = {    "host" : '192.168.0.214',    "port" : 3306,    "user" : 'root',    "passwd" : '123456',    "db" : 'tmpdb'}conn = pymysql.connect(**PY_MYSQL_CONN_DICT)

...

本文由编程应用发布,转载请注明来源:创造连接,占用超大空间的难题