mysql保留关键字导致的语法错误

在一个新的mysql环境执行原来的程序,提示语法错误,经查看发现环境的mysql版本是mysql8,groups一词在mysql8.0.2起成了保留关键字,暂时用`groups`写法代替,后续还是应该注意避免,这种坑也是防不胜防。

You have an error in your SQL syntax...

官方文档:https://dev.mysql.com/doc/refman/8.0/en/keywords.html

Mysql列转行group_concat函数

MySQL中group_concat函数可以将分组的指定字段合并成一行内容,用来作列转行比较合适。

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

默认分隔符为英文逗号

示例:

select id,group_concat(distinct name) from table group by id;  

需要注意的是合并后字段长度有默认限制


参考:

https://www.iteye.com/blog/hchmsguo-555543

http://www.mamicode.com/info-detail-1389878.html

https://www.cnblogs.com/franson-2016/p/6911631.html

https://www.cnblogs.com/llq1214/p/11202866.html

mysql连接数据库localhost比127.0.0.1慢的问题

在php+mysql的开发过程中,连接数据库的主机名填写时,本机一般可以用localhost或者127.0.0.1,实际应用过程中,Linux系统目前还没发现过异常,但在Windows server系统中,有的时候写localhost,网页反应就会出现比较慢的情况,一般一页都需要1秒以上,一步步对程序运行时间判断,发现是mysql连接时候的问题,建立一个连接需要将近1秒,必然是有问题的,搜索之,发现确实存在这个情况,很多程序员博客都有反应,摘抄记录如下:

http://blog.sina.com.cn/s/blog_6cb5a76f0100yfho.html

最近发现程序反应时间有点慢,于是逐渐的排除,计算每段程序执行的时间,最后发现时间损耗都花在了链接数据库上,数据库链接也没有什么好的办法,于是便放下它了。

次日,我测试一下数据库的远程链接,发现我用IP访问数据库的执行时间很短要远远小于我在本地用localhost连接数据库。于是便有了下面一段测试:

解决mysql数据导入导出提示secure-file-priv option问题

Mysql数据库从文件导入或导出到文件,提示The MySQL server is running with the --secure-file-priv option so it cannot execute this statement ,原因及解决方法如下:

一些版本的mysql对通过文件导入导出作了限制,默认不允许,

查看配置,执行mysql命令

SHOW VARIABLES LIKE "secure_file_priv";

如果value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行),如果为空,则不限制目录;

修改配置可修改mysql配置文件,查看是否有

secure_file_priv =

这样一行内容,如果没有,则手动添加,

sql中的多行合并函数collect_set、collect_list 、concat_ws

从数据库里取N个字段,然后组合到一起用“,”分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到CONCAT_WS(),非常好用。

CONCAT_WS(separator, str1, str2,...)

它是一个特殊形式的 CONCAT(),第一个参数剩余参数间的分隔符,分隔符可以是与剩余参数一样的字符串,如果分隔符是 NULL,返回值也将为 NULL,这个函数会跳过分隔符参数后的任何 NULL 和空字符串,分隔符将被加到被连接的字符串之间。

简单例子如下:

图形数据库Neo4j安装过程记录

Neo4j是一种高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。

本次安装在阿里云centos7上操作,大概过程如下,谨此记录:

安装包下载地址 https://neo4j.com/download-center/#community 社区版

下载服务器在国外,用国内机器下载速度极慢,速度大概20KB/s,安装包100M+,可以找个国外vps中转一下;

tar -zxvf 解压到存放目的路径,cd进入;

目前Neo4j版本为4.1.2,启动要求安装Java11,如果已有的话直接./bin/neo4j start后台启动,或者./bin/neo4j console命令格式;

远程通过浏览器操作,需修改配置文件conf/neo4j.conf,将dbms.connectors.default_listen_address=0.0.0.0一行前的#去掉,保存,重启neo4j;

防火墙开放7474、7687端口,浏览器访问http://ip:7474即可,用户名密码默认均为neo4j,首次登陆强制改密码;

升级Java11:

卸载旧版本:

yum -y remove java-1.8.0-openjdk*

订阅 数据库