美文网首页
mysql几个常见错误

mysql几个常见错误

作者: 零一间 | 来源:发表于2020-11-05 17:24 被阅读0次

1 MySQL数据库远程连接很慢的解决方案

[mysqld]
skip-name-resolve

原因是由于mysql对连接的客户端进行DNS反向解析。

注意

在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了,因为这是禁止了域名解析的结果。

2 MySQL远程连接不上

vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address=127.0.0.1  139.196.197.138 0.0.0.1

msyql默认的bind-address是127.0.0.1

解决方法:bind-address后面增加远程访问IP地址或者禁掉。

3 乱码

查看配置是否字符集统一,不统一根据自行调整即可。

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set

例如:

/etc/mysql/mysql.conf.d/mysqld.cnf
character-set-server=utf8

4 导入数据报错

1153 - Got a packet bigger than 'max_allowed_packet' bytes

MySQL默认读取执行的SQL文件最大为16M

1 临时解决方案:

set global max_allowed_packet = 210241024*10
show VARIABLES like ‘%max_allowed_packet%’;

2 更改配置项(my.cnf

 [mysqld]
 max_allowed_packet=400M 

5 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and

完整提示如下:

5 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

only_full_group_by的语义就是确定select target list中的所有列的值都是明确语义,在此模式下,target list中的值要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于group by list`中的表达式的值。

1 可以修改sql_mode

-- 查看SQL_MODE
SELECT @@sql_mode;
-- 修改SQL_MODE
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

如果是只查询某个字段出现可以使用any_value函数来抑制ONLY_FULL_GROUP_BY值被拒绝.

相关文章

网友评论

      本文标题:mysql几个常见错误

      本文链接:https://www.haomeiwen.com/subject/dfdavktx.html