浏览模式: 普通 | 列表
分类: Mysql | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | >
有个centos服务器最近总是自动停mysql服务
手动启动服务,service mysql start 有时候正常,有时候失败。错误提示如下:
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/var/ryrt4r3f0678jdZ.pid).


网上认为是空间满了,查看硬盘空的很.
接着查看mysql错误文件,提示启动失败 Innodb_buffer_pool_size 内存分配出问题。
这才记起服务器进行过降配,内存减少了。那问题就明白了,将 /etc/my.cnf 中 Innodb_buffer_pool_size 尺寸降低到默认值就可以启动了

mysql复制一个表的操作

[ 2023-08-22 08:32:51 | 作者: admin ]
1、相同数据库复制表
没有想到复制一个表时间很短,500万数据的表,3秒结束了,还怀疑了5秒
   create table 新表 select * from 旧表


2、同服务器不同数据库复制表
完全复制一个表
insert into db1.table1 select * from db2.table2

复制前五条记录
insert into db1.table1 select * from db2.table2 limit 5

不复制重复列值,如果包含自增字段肯定不会重复没必要使用distinct
  (distinct关键字去重会作用于所...

阅读全文…
p.s.有次全部设好还乱码,查了发现自定义截取函数有问题,改为mb_substr()注意第三个编码参数,就正常了。
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集。


一、首先修改mysql配置文件
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

二、建立数据库和字段的时候需要使用 utf8mb4

三、程序中连接数据库需要使用 utf8mb4
...

阅读全文…
p.s.phpmyadmin中看mysql状态 thread_created 过大,可以考虑增加 thread_cache_size 值


1,查看数据库状态如下
show status like 'thread%';
如图:
attachments/202203/26_154405_1276937202009081438536081381821334.png


2,查询服务器 thread_cache_size 配置
show variables like 'thread_cache_size';
如图:这是我修改以后的截图,之前是9
attachments/202203/26_154425_1276937202009081439570112105265150.png

...

阅读全文…

Mysql不锁表增加字段和索引方法

[ 2021-09-20 14:02:28 | 作者: admin ]
5.6 以后增加了ONLINE DDL,实现不锁表增加字段和索引非常简单。解决办法ALTERTABLE`member`ADD`user_from`smallint(1)NOTNULL,ALGORITHM=INPLACE,LOCK=NONEALGORITHM表示算法:default默认(根据具体操作类型自动选择),inplace(不影响DML),copy创建临时表(锁表),INSTANT只修改元数据(8.0新增,在修改名字等极少数情况可用)LOCK表示是否锁表:default默认,none,shared共享锁,exclusive...

阅读全文…
MERGE引擎初体验
MERGE存储引擎又叫MRG_MyISAM存储引擎,可以把许多相同的MyISAM表可以聚集到一个表来使用。“相同”的意思是所有的表要有相同的列和相同的索引信息。
MERGE引擎的另一个代替方案是分割(partitioned)表(把一个独立的分割后的表放到一个单独的文件中)。分割表是一个比MERGE更好的方案,具体请参考第18章Partitioning的内容。
当建立一个MERGE引擎表时,会产生两个文件:.frm文件存储的是表的格式,.MRG文件包含的是这个MERGE表所包含的MyISAM表的名字(这些表可以不在同一个数据库中)。
MERGE表中可以使用 SELECT, DELETE, UPDATE, 和INSERT等数据库操作语言。前提是对每个包含的表都有这些权限。

注意:
如果一个用户有权限操作数据表t, 那么可以建立一个MERGE表m来访问t, 这时如果用户对t的权限没有了,仍然可以通过m来操作t。
...

阅读全文…

mysqlbinlog增量恢复

[ 2021-04-30 16:24:38 | 作者: admin ]
p.s. mysqlbinlog可以按照pos和datetime,指定database,来浏览和导出为sql文件,也可以直接传递给mysql直接执行sql语句

mysqlbinlog工具的作用是解析mysql的二进制binlog的日志内容,把二进制日志解析成可以在MySQL数据库里执行的SQL语句。
1.mysql的binlog日志是什么

mysql数据目录下的xxx-bin.000001这样的文件就是mysql的binlog日志
2.mysql的binlog日志的作用

mysql的binlog日志用于记录MySQL内部的增删改等操作,也就是对MySQL数据库更新内容的记录(对数据库的改动),对数据库进行查询的语句(如以show、select开头的语句),不会被binlog日志记录。binlog日志的主要作用是数据库的主从复制以及数据灾难后的增量恢复。
...

阅读全文…

mysql的查询缓存query_cache相关问题

[ 2021-04-23 09:44:14 | 作者: admin ]
p.s.表的更新不频繁可以开启query_cache,否则开启之后反而会降低性能。表中只要更新了一个点击量或者新插一条记录,则这个表相关的所有查询缓存都会清空重来。所以query_cache要慎用,建议用memcache和redis替代。

在终端或phpmyadmin获取相关变量
mysql> SHOW global variables like '%cache%';

在终端或phpmyadmin获取相关状态
mysql> SHOW GLOBAL STATUS LIKE '%cache%'

临时关闭query_cache
mysql> set global query_cache_size=0;
mysql> set global query_cache_type=0;
...

阅读全文…