分类 "Database" 下的文章

问题:阿里云 mysql 运行一段时间就崩,mysql无法重启,The server quit without updating PID file
解决:因为是便宜的服务器,所以内存小,内存不足引起的
方法:
方法一:重启服务器,最快的方法,但运行一段时间之后还会崩
方法二:修改配置文件,减小php-fpm的进程数等
1、sudo vim nginx.conf   将进程数和线程数减小
worker_processes 1;
worker_connections 256;
2、sudo vim php-fpm.conf  将下列值改小
pm.max_children
,子进程最大数
pm.start_servers
,启动时的进程数
pm.min_spare_servers
,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers
,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理

3、重启nginx,重启php-fpm

参考:http://blog.csdn.net/wanderman1836/article/details/42462571

问题:mysql如何导出数据库单张表?
方法:
mysqldump -uroot -p mydata users > users.sql

问题:python,tornado,sqlalchemy表单传入的数据太多,如何一次性获取,快速添加
解决:使用self.get_arguments,User(**args)
方法:
userinfo = self.get_arguments('userinfo')
user = User(**userinfo)
self.db.add(user)

问题:使用mysql5.7的错误,因为mysql5.7默认开启了only_full_group_by模式
解决:select 中的字段必须全部在group by中
方法:
select max(users.id), max(users.name), users.age from users group by users.age;

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
所以对于设置了这个mode的数据库,在使用group by 的时候,就要用MAX(),SUM(),ANY_VALUE()这种聚合函数,才能完成GROUP BY 的聚合操作。

参考:http://blog.csdn.net/v587_lu/article/details/51785371

上面的方法能解决一部分问题,但还有的就不行了,此时可以使用临时表的方法:

select id, name,t.group_id, t.score from (select group_id, min(score) as score from game group by group_id order by min(score)) t inner join game on t.group_id=game.group_id and t.score=game.score

这样就能将表game按group_id进行分组之后找到score最小的用户id及name了

参考:http://blog.csdn.net/Allen_Tsang/article/details/54892046

问题:使用二进制文件安装mysql的,但却没有让输入密码,默认密码是什么呢?
解决:安装完成后,默认密码是空
方法:
mysql -uroot -p (回车,之后让输入密码时直接回车就能进入了)
进入之后修改root密码
use mysql;
update user set password=password('123456') where user='root';
这样就能修改root的密码为123456了