
MySQL
闲敲代码、落灯花
坚持写博客,一直在努力中
专注后端开发,喜欢Go和Python的PHP程序员,作为一个前端爱好者,对服务器运维比较有经验
同时也是一个个人站长:在网站:逐步前行STEP[https://www.hezehua.net] 记录我的工作与生活
展开
-
Mysql count 的多种使用方式性能比较
Mysql的count函数用于统计符合条件的记录数,常用的方式有:1、count(*)2、count(1)3、count(id)4、count(col)首先需要明确一点:count函数对于返回的结果集,一行行地判断,不会统计null值。初学者经常会纠结到底应该使用哪种方式做计数,实际上这四种计数方式是有很大差别的。count的原理是count(*)遍历整张表,不需要取出数据来计算,直接按行累计。count(1)遍历整张表,不需要取数,循环计数。count(id)遍历整原创 2020-07-29 02:51:44 · 6700 阅读 · 0 评论 -
mysql count 实现复杂统计解析
mysql的count函数可以计算符合条件的记录条数,比如:select count(*) from users;执行结果:上面的sql只是将查询到的记录总数输出,count函数本身还可以配合if函数实现更复杂的计数:select count(if(status = 1, 1, null)) from users注意,count会将所有非null值计数,所以if里面不符合条件应该返回null。如果需要按某个字段计算去重后的数量,则需使用 distinct 关键字:select count原创 2020-07-29 01:42:40 · 1189 阅读 · 0 评论 -
Mysql update 使用join更新字段
在mysql应用中常常需要通过别的表的查询结果来更新本表,但很少会本表的查询结果再来更新本表的,下面就看看从本表查询结果更新本表应该怎么做吧。表classify:字段属性idint(11)namestring(255)表production:字段属性idint(11)classify_idint(11)现在表classi...原创 2019-12-30 01:59:40 · 4429 阅读 · 0 评论 -
远程访问数据库出错的解决办法
案例: 在aws服务器中的项目访问在华为云中的测试服务器的数据库,报错:Access denied for user 'root'@'ec2-XXX-XXX-XXX-XXX.cn-north-1.compute.amazonaws.com.cn' (using password: YES)于是直接添加一个host为ec2-XXX-XXX-XXX-XXX.cn-north-1.comp...原创 2018-05-28 18:33:31 · 1553 阅读 · 0 评论 -
配置Mysql主从
配置Mysql主从可以做热备、读写分离,是提高网站性能、提高数据安全性的比较有效的方式,而且配置简单,所以笔者在网站因业务逻辑需要大量用到数据库操作而性能不佳时,首先想到要做主从,其实还有别的方案的,比如做缓存,但是做缓存要改代码所以等之后再应用,先把主从给配置了。以下是做Mysql主从的关键步骤: 1、准备两个服务器,并且配置并启动同版本的mysql服务,其中,一个主(master)一个从(s...原创 2018-07-11 19:18:01 · 170 阅读 · 0 评论 -
定时备份mysql数据库压缩文件
首先写一个备份脚本: backup.sh#!/bin/bash#设置文件名中的时间格式date=`date +%Y_%m_%d`#mysqldump命令需使用绝对路径否则无法正确执行/usr/local/mysql/bin/mysqldump -uusername -ppassword database | gzip > /home/mysql/backup/dat...原创 2018-07-19 12:14:53 · 1419 阅读 · 0 评论 -
mysql报错Attempted to open a previously opened tablespace的解决办法
1、在配置文件添加:innodb_force_recovery = 1;2、重启mysql服务:service mysqld restart 3、登陆mysql,导出数据库 4、删除ibdata1、ib_logfile0、ib_logfile1文件和databasename(数据库名字)目录 5、注释掉第一步的配置:innodb_force_recovery = 1 6、重启m...原创 2018-07-27 16:26:27 · 6892 阅读 · 3 评论 -
Mysql 分组后组内排序按字段取最大或最小的数据
示例:1、将文章按类型的分组,并获取类型分组中最新的一篇文章select author,max(`updated_at`) as updated_at from articles group by category_id order by updated_at desc2、将文章按类型的分组,并获取类型分组中阅读量最小的一篇文章select author,min(`read_cnt...原创 2019-07-24 11:56:22 · 1394 阅读 · 0 评论 -
Mysql 加锁防并发
mysql加锁语句:selct * from table_name where id=1 for update使用方式以及注意事项:1、该语句必须在事务中执行才生效2、如果该语句中的查询未正确使用索引(不一定是主键),则该语句会锁全表3、如果该语句的查询中索引生效了,只会锁定查询的行4、该锁会在事务提交的时候释放...原创 2019-09-10 10:57:52 · 496 阅读 · 0 评论 -
ERROR! The server quit without updating PID file解决办法
先新建PID文件,并且设置目录权限 再新建sock文件,并且设置目录权限 重启即可 重要的是在my.cnf中设置log_error使之打印日志,然后参考日志去解决错误...原创 2018-05-19 02:27:26 · 7948 阅读 · 0 评论 -
laravel 关联关系之多态关联
多态关联文章、作者与收藏的关联关系:收藏既可以是对文章的收藏,也可以是对作者的收藏 表:artist: 字段:id name 表:article: 字段:id title content 表:favorites: 字段:id favorite_type favorite_idclass favorites extents model{...... public fu...原创 2018-04-17 02:07:36 · 1874 阅读 · 0 评论 -
记录第二次遇到ERROR! MySQL server PID file could not be found!
我的云服务器出现好几次ERROR! MySQL server PID file could not be found!错误了,都是突然就数据库崩了,之前都是删除巨大的日志文件、杀mysqld进程、重启就好了,然而这回却没有重启成功,看日志也看不出有效信息,,,,可能是因为水平渣 -。- 手动生成了pid文件,进行mysql服务重启失败后pid文件又被删除了…….. 于是重启服务器 再回头重...原创 2018-03-28 00:35:05 · 963 阅读 · 0 评论 -
编译安装LNMP全程实录
此次是在CentOs 7.4上进行安装配置,先把编译环境配置好:yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++准备一些软件的安装包: 安装包 地址 用途 php-7.1.6.tar.bz2 http://cn2.php.net/distribution...原创 2018-02-03 02:10:35 · 323 阅读 · 0 评论 -
修改mysql密码
下面这种方法适用于知道现有密码修改为新密码的情况:use mysql;update user set `Password`=PASSWORD('新密码') where `User`='root';FLUSH PRIVILEGES;原创 2018-02-13 09:21:39 · 279 阅读 · 0 评论 -
Mysql执行计划
执行计划就是sql语句在数据库中的执行情况,一般用于sql性能分析、优化。Mysql中使用explain来查看执行计划:explain select * from student\G;*************************** 1. row *************************** id: 1 select_type: SIMPLE ...原创 2018-02-14 09:44:13 · 249 阅读 · 0 评论 -
实用mysql命令
1、显示表中所有列的详细信息show full columns table_name;2、查看服务器版本show version();3、查看当前登录用户select current_user();4、显示表的详细信息show table status like;5、显示进程数show progresslist;6、显示索引show index...原创 2018-02-14 09:49:15 · 301 阅读 · 0 评论 -
Mysql日志
1、错误日志(Log Error) 记录Mysql服务器进程在启动/关闭或者运行过程中遇到的错误消息,是工作中排查错误的重要工具。 查询方式:show variables like 'log_error'\G;*************************** 1. row ***************************Variable_name: log_error ...原创 2018-02-14 10:21:16 · 242 阅读 · 0 评论 -
记一次mysql进程无法启动的解决方案
莫名其妙数据库崩了,试了很多方案启动不了,然后不经意看到/usr/local/mysql/data目录下几个日志文件特别大,删除之后就能重启了。-rw-rw---- 1 mysql mysql 4497955 Mar 3 18:29 xxxx-php-01.log-rw-rw---- 1 mysql mysql 62860 Mar 14 20:29 xxxx-php-01.nova...原创 2018-03-14 21:03:45 · 872 阅读 · 0 评论 -
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
出现如题错误时,采取以下解决办法:ps -ef | grep mysql #找到运行的mysql进程,kill掉service mysqld restart #重启mysql进程原创 2018-03-06 11:09:46 · 201 阅读 · 0 评论 -
建库建表设置统一编码
1、CREATE DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;2、creat table `table_name` ( `id` int(11) unsigned primary key auto_increment; `name` varchar(10) ...原创 2018-03-13 23:02:34 · 3298 阅读 · 0 评论 -
mysql设置用户权限
1、创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';2、程序中使用的mysql账号应该遵循最小权限原则,不允许夸库查询,故设置专门的账号供程序使用:grant select,update,delete,insert on database_name.* to 'username'@'%' identified b...原创 2018-03-13 23:11:52 · 4588 阅读 · 0 评论 -
PHPmyadmin 和 MySQL 的配置笔记
配置MySQL: (直接下载msi文件或者exe文件安装的可直接看第 3 步) 基础配置: 1. 将安装包解压到根目录,如E:\mysql; 2. 进入mysql文件夹找到my-default.ini文件,并将文件名改为my.ini; 3.用记事本打开my.ini,找到如图所示项: 将basedir的值改为mysql文件夹的路原创 2015-11-08 04:55:37 · 554 阅读 · 0 评论