解决 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 错误

安装完 MySQL ,进行运行测试,报 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 错误,

[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe
131206 22:42:51 mysqld_safe Logging to ‘/var/log/mysqld.log’.
131206 22:42:51 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data
131206 22:42:57 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[root@localhost mysql]# /usr/local/mysql/bin/mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

检查一下 MySQL 的运行状态

[root@localhost mysql]# ps -ef | grep mysql
root     32092  2108  0 22:43 pts/0    00:00:00 grep mysql

查看 /tmp 文件夹的确没有 mysql.sock 文件,

通过 find 命令查找

[root@localhost /]# find / -name mysql.sock
/var/lib/mysql/mysql.sock

原来安装到 /var/lib/mysql/mysql.sock 这个位置啦,我们需要修改 my.cnf 文件

[root@localhost /]# vi /usr/local/mysql/my.cnf

[client]
character-set-server = utf8
port    = 3306
socket  = /var/lib/mysql/mysql.sock
……

保存之后即出,重新启动 MySQL 。

via: http://www.chenruixuan.com/archives/517.html

MySQL 报错 this is incompatible with sql_mode=only_full_group_by [ SQL语句 ] 解决办法

这个错误的原因是高版本 MySQL  默认的 sql_mode 包含 ONLY_FULL_GROUP_BY,这个属性保证了 select 到的列都在 group by 中出现。

修改 MySQL 配置文件,通过手动添加 sql_mode 的方式强制指定不需要 ONLY_FULL_GROUP_BY 属性,my.cnf 位于 etc 文件夹下,vim (vim /etc/my.cnf) 下光标移到最后,添加如下:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

MySQL (Navicat) 运行 .sql 文件时报错:[Err] 2006 – MySQL server has gone away 的解决方法

导入一个数据量很大的 .sql 文件时,报错:

SQL 语句过长,超过 MySQL 通信缓存区最大长度。

编辑 MySQL 安装目录下的 my.ini,在最后添加以下内容:

max_allowed_packet=16M

或(2018-03-14 补充)

max_allowed_packet=500M
wait_timeout=288000
interactive_timeout = 288000

max_allowed_packet 是 MySQL 允许最大的数据包,也就是你发送的请求;

wait_timeout 是等待的最长时间,

重启 MySQL 服务

MySQL 中支持 emoji 表情的存储 ThinkPHP

MySQL 的 utf8 编码的一个字符最多 3 个字节,但是一个 emoji 表情为 4 个字节,所以 utf8 不支持存储 emoji 表情。但是 utf8 的超集 utf8mb4 一个字符最多能有 4 字节,所以能支持 emoji 表情的存储。下面介绍了关于如何修改 mysql 数据库的编码格式变为 utf8mb4 的具体方法。

找到 /etc/ 路径下的 my.cnf 文件(或 /etc/mysql/ 路径下),通过 vim 命令 vim /etc/my.cnf 打开该文件并进行编辑,需添加如下所示配置:

[client]
default-character-set=utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4'

[mysql]
default-character-set=utf8mb4

Continue reading MySQL 中支持 emoji 表情的存储 ThinkPHP

导入MySQL数据库时报错1067 – Invalid default value for ‘字段名’

这种报错多是你 MySQL 升级到 5.7 而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是 datetime。想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE 这两个参数限制时间不能为0

Continue reading 导入MySQL数据库时报错1067 – Invalid default value for ‘字段名’