MySQL
MySQL问题汇总
云中鲸
这个作者很懒,什么都没留下…
展开
-
【Python】对中文排序
汉字排序是按照unicode数值排序ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。解决方案,使用汉字转拼音库pypinyin ,得到拼音及音调。原创 2022-09-27 11:07:52 · 3982 阅读 · 0 评论 -
【MySQL】Error writing file ‘/tmp/XXXX‘ (Errcode: 28 - No space left on device)
报错,No space left on device原创 2022-06-24 11:36:49 · 13641 阅读 · 0 评论 -
【MySQL】通过binlog来进行(delete/update)的误操作数据恢复
需要注意的点:1、先确认一下自己的binlog的格式SHOW VARIABLES LIKE '%binlog_format%';目前有三种格式,STATEMENT,ROW,MIXED,ROW一定会恢复,MIXED大概率会恢复,STATEMENT用这种方法未必能恢复,可以试试。三种格式的解释:MYSQL中BINLOG_FORMAT的三种模式2、必须要登录一个有mysql的机器才能用 mysqlbinlog 工具。操作流程:mysql 通过binlog来进行忘记where误操作(delete/up原创 2021-12-30 09:27:21 · 1167 阅读 · 0 评论 -
mysql使用show processlist找到执行完成没有断开链接的程序
1、通过 host 找到链接的服务器和端口SHOW PROCESSLIST结果为:IdUserHostdbCommandTimeStateInfoProgress154409606crm192.168.100.100:52839crmQuery0InitSHOW FULL PROCESSLIST0155333474crmcloudera:51863crmSleep19000155431419crmcloudera:34原创 2021-12-17 16:15:36 · 1159 阅读 · 0 评论 -
【MySQL】MariaDB排序分组的坑
情况描述平时都在用mysql 5.6习惯了,公司的数据库是Mariadb,之前一直没注意,今天有人反馈说排序不对,仔细检查了一下发现确实有问题。MariaDB 中当语句中有 group by 居然是按照主键或者是唯一索引做的排序,从小到大,后面接的 order by 根本不起作用,...原创 2021-12-06 13:38:46 · 597 阅读 · 0 评论 -
【MySQL】binlog日志手动删除和自动清理
mysql的binlog必不可少,但是不清理的话,50g的小云盘经受不住每天频繁的插入删除。所以binlog日志还需要删除。解决办法来了:一、手动清理手动清理当然指的不是 rm -rf ** ,这样可能会导致 mysq-bin.index 错乱,最终导致后期expire-log-days配置项失效。// 1)指定清理某文件前所有的文件PURGE MASTER LOGS TO 'MySQL-bin.010'; // 2)清理2008-06-22 13:00:00前binlog日志 PURGE原创 2021-11-22 17:01:06 · 1771 阅读 · 0 评论 -
【Mysql】ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
之前在CentOS安装完MySQL修改默认密码时出现了如下错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,具体是与validate_password_policy的值有关,下图表明该值规则如果想要查看MySQL完整的初始密码规则,登陆后执行以下命令SHOW VARIABLES LIKE 'validate_pass原创 2021-05-21 18:57:26 · 327 阅读 · 0 评论 -
【MySQL】导出(多张表)表结构及表数据 mysqldump 用法
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名;1、导出数据库为dbname的表结构(其中用戶名为root,密码为dbpasswd,生成的脚本名为db.sql)mysqldump -uroot -pdbpasswd -d dbname >db.sql;2、导出数据库为dbname某张表(test)结构mysqldump -uroot -pdbpasswd -d dbname test>db.sql;3、导出数据库为dbname所有表原创 2021-03-02 19:00:22 · 841 阅读 · 0 评论 -
【MySQL】指定编码格式创建数据库
CREATE DATABASE `crm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;原创 2021-03-01 17:25:54 · 202 阅读 · 0 评论 -
【MySQL】查看mysql的warnings
在往MySQL数据库导入数据的时候经常会出现告警,这些告警很容易被忽视,今天导数据的时候突然想看看告警的内容是什么,谷歌mysql查看告警的命令show warnings;第一种告警,一般的警告是这样的Warning | 1265 | Data truncated for column ‘刊名’ at row 1265第二种告警Warning | 1366 | Incorrect string value: ‘xB5xDAxB6xFExBDxEC…’ for column ‘刊名’ at原创 2021-02-27 10:32:31 · 1129 阅读 · 0 评论 -
【MySQL】linux下mysql报Failed to restart mysqld.service: Unit not found
使用 service mysqld restart 重启mysql服务的时候,报了Failed to restart mysqld.service: Unit not found估计也就是服务名错误了,可以使用 chkconfig --list 查询服务列表可以看到服务名称为"mysql",使用service mysql restart 重启mysql服务成功...原创 2021-02-17 20:13:57 · 3872 阅读 · 0 评论 -
【mysql】执行group by提示only_full_group_by问题解决方法
先查看当前的sql_mode情况 select @@sql_mode 解决办法1、编辑mysql配置文件: vim /etc/my.cnf2、找到sql_mode的位置如果有sql_mode=...的注释就把注释打开,如果没有就加上(查询出的sql_mode去掉的ONLY_FULL_GROUP_BY)改成:sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGI原创 2021-01-08 16:30:40 · 795 阅读 · 0 评论 -
【MySQL】开启远程访问
登进数据库mysql -uroot -pxxxx选择mysql数据库use mysql;执行如下操作GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;刷新一下flush privileges;ok,远程登录可以的,不信可以查看一下select host,user from user;如果还是用远程工具连接不上,检查一下防火墙,看看是不是把3306端口给拦截了...原创 2020-12-08 10:18:12 · 2414 阅读 · 0 评论 -
【MySQL】修改密码
第一步 查看默认密码cat /var/log/mysqld.log |grep password第二步#修改:密码最小长度策略mysql> set global validate_password.length=0; #修改:密码强度检查等级策略mysql> set global validate_password.policy=0;第三步 设置密码#MySQL版本5.7.6版本(以前)用户可以使用如下命令:mysql> SET PASSWORD = P原创 2020-12-07 16:06:58 · 307 阅读 · 0 评论 -
mysql将字符串转换成日期类型
mysql> SELECT STR_TO_DATE('2010~bai10~22 20.55.09', '%Y~%m~%d %k.%i.%s' ) A;+---------------------+| A |+---------------------+| 2010-10-22 20:55:09 |+---------------------+1 row in set (0.00 sec)格式描述%a缩写星期名%b缩写月原创 2020-08-06 14:31:13 · 1674 阅读 · 0 评论 -
【MySQL】insert ignore ,insert replace, insert into 之间的区别
存在不存在insert ignore忽略插入insert into报错插入replace into替换插入表要求:插入的数据中存在,PrimaryKey,或者unique索引的字段;结果:表id都会自增replace into :替换插入的原理是:如果存在,先删除数据,再插入一条新的记录到表中,自增主键的值会增加。INSERT IGNOR :忽略插入的原理是:如果存在,原先对应的主键或者唯一键,不管其他字段的值有无变化,之前对应的这条数据都不会变化...原创 2020-05-11 20:35:21 · 647 阅读 · 0 评论 -
【MySQL】SQL分组取最大值的方法
看了很多分组之后获取最大值的sql博客,真的是满心欢喜,一试就凉,还得自食其力。一、目标简单的三个字段,id,rid,online_date,目前就是想根据rid进行分组,取online_date中的最大值,二、错误思路最开始想的方法就是根据rid进行group by,然后用id进行倒序,来获取最大值,后来发现group by之后又随机排序了,无法获得目标值。SELECT id,rid...原创 2020-04-27 16:53:58 · 4645 阅读 · 3 评论 -
【Mysql】sql中exists,not exists的用法
exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:select name from student where sex = 'm' and mark exists(select 1 from grade where ...),只要exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段始终为1,如果改成select 2 from grade...原创 2020-04-27 16:45:28 · 5255 阅读 · 1 评论 -
mysql数据库字段内容替换
UPDATE 表名 SET 字段名= replace(字段名, '查找内容', '替换成内容') ;UPDATE car_articles SET article_title = replace(article_title, '内容1', '替换0') ;原创 2019-10-21 16:41:09 · 834 阅读 · 0 评论 -
查看MySql版本号命令
查看MySql版本号命令 这里介绍四中不同的方法,它们分别运行在不同的环境中,最后对每种方法的优劣以及使用范围也做了总结。1、直接在操作系统命令行下执行:MySQL –VC:>MySQL -V2、 MySQL 客户端命令:status (缩写为 \s)mysql –u root –p命令登录,登陆的日志里面也有版本号MySQL> statu...原创 2018-05-15 15:49:38 · 156628 阅读 · 4 评论 -
【MySQL】添加range分区,ERROR 1505 <HY000> Partition management on a not partitioned table is not possible
如果想在已经建好的表上进行分区,如果使用alter添加分区的话,mysql会提示错误:ERROR 1505 <HY000> Partition management on a not partitioned table is not possible 正确的方法是新建一个具有分区的表,结构一致,然后用insert into 分区表 select * from 原始表; 测试...原创 2019-07-27 11:00:17 · 10394 阅读 · 0 评论 -
【MySQL】日期相减函数UNIX_TIMESTAMP()
mysql两个日期格式相减的不能直接相减,直接相减得到的数值SELECT end_stamp - start_stamp, end_stamp, start_stamp FROM sys_cdrs;相减得到的并不是秒,特别需要注意!mysql中计算两个Datetime类型的时间间隔(单位为秒),需要转换,使用 UNIX_TIMESTAMP() 函数:SELECT UNIX_TIMEST...原创 2019-09-29 19:33:13 · 3252 阅读 · 0 评论 -
【MySQL】Warning Code : 1292 Truncated incorrect DOUBLE value: '111'
今天在对表数据插入的时候发生了警告。# 原sqlINSERT INTO `person_data_pre` (USER_NAME,GENDER,PHONE,CAR_TYPE_NAME,BUY_TIME,BUY_CITY,JOP_NUM,MARK_TIME,PAYMENT,isNewCar,VOICE_URL,INSERT_TIME,UPDATE_TIME,STATUS) SELECT USE...原创 2019-10-06 14:24:19 · 2362 阅读 · 0 评论 -
索引左前缀性的三层意思
在很多数据库中,当创建多列的索引的时候,会出现最左前缀的现象。假设有如下表: create table AAA (a varchar2(32) ,b varchar2(32),c date);在a和c列上建普通索引: create index iN_AAA_1 on AAA (a, c); 1.索引左前缀性的第一层意思:必须用到索引的第一个字段。 select * from AAA ...转载 2019-01-17 22:41:52 · 247 阅读 · 0 评论 -
MySQL创建账号
添加用户以root用户登录数据库,运行以下命令:create user zhangsan identified by 'zhangsan';上面的命令创建了用户zhangsan,密码是zhangsan。在mysql.user表里可以查看到新增用户的信息:授权命令格式:grant privilegesCode on dbName.tableName to username@host i...原创 2019-03-30 11:49:50 · 7724 阅读 · 1 评论 -
MySQL 查看表结构简单命令
MySQL 查看表结构简单命令一、简单描述表结构,字段类型desc tabl_name;显示表结构,字段类型,主键,是否为空等属性,但不显示外键。例如:desc table_name二、查询表中列的注释信息select * from information_schema.columnswhere table_schema = 'db' #表所在数据库...原创 2018-05-24 15:30:18 · 943 阅读 · 0 评论 -
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=
想比较一下,从表结构中除去已有的字段,结果出现问题。SELECT column_name FROM information_schema.columns WHERE table_schema ='fhlc_stat' AND table_name = 'user_dimension_detail' AND column_name NOT IN ( SELECT FIELD FROM f...原创 2018-05-24 13:57:11 · 415 阅读 · 0 评论 -
MySQL 时间函数加减计算
一、MySQL 获得当前日期时间 函数1.1 获得当前日期 + 时间(date + time)1.2 获得当前日期 + 时间(date + time)1.3 获得当前日期(date)1.4 获得当前时间(time)1.5 获得当前 UTC 日期时间二、MySQL 日期时间 Extract(选取) 函数2.1 选取日期时间的各个部分:2.2 MySQL Extract() ...原创 2018-06-11 16:24:54 · 46705 阅读 · 0 评论 -
Error Code: 1786 Statement violates GTID consistency: CREATE TABLE ... SELECT.
1、错误描述1 queries executed, 0 success, 1 errors, 0 warnings查询:call account_check_main('20180511')错误代码: 1786Statement violates GTID consistency: CREATE TABLE ... SELECT.执行耗时 : 0 sec传送时间 :...原创 2018-05-15 15:59:08 · 20571 阅读 · 0 评论 -
Error Code: 1318. Incorrect number of arguments for PROCEDURE account_check.temp_i; expected 1, got
1、错误描述1 queries executed, 0 success, 1 errors, 0 warnings查询:CALL temp_i错误代码: 1318Incorrect number of arguments for PROCEDURE account_check.temp_i; expected 1, got 0执行耗时 : 0 sec传送时间 : 0...原创 2018-05-15 11:31:45 · 7167 阅读 · 0 评论 -
mysql中update和select结合使用
有时更新数据的时候需要关联表更新数据,否则一条一条更新真是太慢了UPDATE A LEFT JOIN( SELECT id,NAME FROM B) c ON A.id = c.id SET A.name = c.name; 更新多个字段的时候,在set后面用逗号分隔即可。...原创 2018-04-20 10:33:29 · 4853 阅读 · 0 评论 -
MySQL优化技巧
一、MySQL优化三大方向二、MySQL参数优化三、对MySQL语句性能优化的16条经验(一) 使用查询缓存优化查询(二) 使用EXPLAIN关键字检测查询(三) 当只要一行数据时使用LIMIT 1(四) 为搜索字段建立索引(五) 在join表的时候使用相当类型的列,并将其索引(六) 切记不要使用ORDER BY RAND()(七) 避免使用SELECT *(八) 永远为...转载 2018-04-13 13:56:09 · 96 阅读 · 0 评论 -
Python3 -- pymysql的使用(MySQL 数据库连接)
什么是 PyMySQL?PyMySQL 安装数据库连接创建数据库表数据库增删改查数据库插入操作数据库查询操作数据库更新操作数据库删除操作执行事务错误处理本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。什么是 PyMySQL?PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 ...转载 2018-04-22 19:58:24 · 439 阅读 · 0 评论 -
MySQL中INFORMATION_SCHEMA数据库简介
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。在 MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的...转载 2018-04-16 18:04:25 · 668 阅读 · 0 评论 -
MySQL四舍五入函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
MySQL四舍五入函数ROUND(x)ROUND(x)函数返回最接近于参数x的整数,对x值进行四舍五入。实例:使用ROUND(x)函数对操作数进行四舍五入操作。SQL语句如下:SELECT ROUND(-2.34),ROUND(-4.56),ROUND(2.34),ROUND(4.56);ROUND(x)函数的执行结果如下图所示:上图中代码执行的结果显示,进行四舍五...原创 2018-07-18 16:38:54 · 8085 阅读 · 0 评论 -
MYSQL中replace into的用法
新建一个test表,三个字段,id,title,uid, id是自增的主键,uid是唯一索引;插入两条数据insert into test(title,uid) VALUES ('123465','1001');insert into test(title,uid) VALUES ('123465','1002');执行单条插入数据可以看到,执行结果如下:[SQL]...原创 2018-08-02 11:35:58 · 116 阅读 · 0 评论 -
sqlyog证书秘钥(注册码)
姓 名(Name):ttrar 序 列 号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c 或者(OR) 姓 名(Name):ttrar 序 列 号(Code):59adfdfe-bcb0-4762-8267-d7fccf16beda 或者(OR) 姓 名(Name):ttrar 序 列 号(Code):ec38d297-0543-...转载 2018-08-19 12:53:28 · 81875 阅读 · 18 评论 -
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operatio
1、只要修改一下表的字符集,如下:ALTER TABLE users CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;2、改变表的字符集将比较等式一边进行字符串转换,如改为“CONVERT(b.fullCode USING utf8) COLLATE utf8_unicode_ci”...原创 2019-03-22 15:47:43 · 4140 阅读 · 0 评论 -
mysql中FIND_IN_SET的使用方法
在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来具体了解一下。FIND_IN_SET(str,strlist)函数str 要查询的字符串strlist 字段名 参数以”,”分隔 如 (1,2,6,8)查询字段(...原创 2019-03-16 20:12:43 · 399 阅读 · 0 评论 -
PowerDesigner连接mysql导出mysql的结构生成pdm
1、安装好PowerDesigner2、安装mysql-connector-odbc-5.1.5-win32.msi这个是驱动必须安装,大概4M,百度搜即可。3、打开powerdesigner,文件-》reverse engineer–》database model name 自定义–》4、选择dbms为mysql 5.0 --》using a data source 选择数据源点击...原创 2019-03-20 11:03:20 · 1198 阅读 · 0 评论