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值被拒绝.