首页 > 数据库 >mysql ssh隧道连接数据库报错

mysql ssh隧道连接数据库报错

时间:2023-11-12 13:32:07浏览次数:36  
标签:GROUP mysql 报错 ssh sql group dbname

1. ssh隧道连接数据库报错:

80070007:SSH Tunnel:Server does not support diffie-hellman-group1-sha1 for keyexchange

①. /etc/ssh/sshd_config最下面加入下面配置:
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
 
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr

②. 执行ssh-keygen命令:
cd
ssh-keygen -A

③. 重启ssh:
service sshd restart

– 导出dbname表结构

mysqldump -uroot -p123456 -d dbname > dbname.sql


– 导出dbname表数据

mysqldump -uroot -p123456 -t dbname > dbname.sql


– 导出dbname表结构和数据

mysqldump -uroot -p123456 dbname > dbname.sql


docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7


duso docker run -p 3306:3306 --name mysql \

-v /usr/local/docker/mysql/conf:/etc/mysql \

-v /usr/local/docker/mysql/logs:/var/log/mysql \

-v /usr/local/docker/mysql/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

-d mysql:5.7



1. 报错:

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'csc_risk.a.DefaultDate' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, Time: 0.035000s

2. 原因:

①. 对于GROUP BY聚合操作:
    a. 如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中.
    b. 5.7下mysql的model默认开启了ONLY_FULL_GROUP_BY.
       (1). select version   // 查看数据库版本

②. 简而言之,就是SELECT后面接的列必须被GROUP BY后面接的列所包含,或者被聚合函数包裹.

③. 这个配置会使得GROUP BY语句环境变得十分狭窄,所以一般都不加这个配置.
    a. 一旦开启only_full_group_by,感觉group by将变成和distinct一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存.

④. 示例:
    select a,b from table group by a,b,c;    // 正确
    select a,b,c from table group by a,b;    // 错误,因为select的列没有在group by中出现

2. 解决方法:

(1). 会话级别,重启mysql服务后,设置又被重置:

①. 去掉ONLY_FULL_GROUP_BY,重新设置值重启.

②. 方案:
    a. 方案一:
       SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
    b. 方案二:
       SELECT @@sql_mode;
       set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

(2). 修改my.conf文件:

[mysqld]
......
# 设置模式
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

标签:GROUP,mysql,报错,ssh,sql,group,dbname
From: https://blog.51cto.com/u_16251183/8329117

相关文章

  • mysql 主从复制
    本地启动了三台虚拟机,分别是,cdh1(192.168.56.121)、cdh2(192.168.56.122)、cdh3(192.168.56.123)其中cdh1是主库,cdh2、cdh3是从库需要提前对三个库都把测试库创建好:CREATEDATABASE`mytest`DEFAULTCHARACTERSET'utf8mb4'DEFAULTCOLLATE'utf8mb4_general_ci';然后我......
  • mysql log_bin整理
    二进制日志记录开关,二进制日志用于记录mysql数据更新的日志文件,对于非变更数据的操作不予记录,比如select、show等。showvariableslike'log_bin';mysql>showvariableslike'log_bin';+---------------+-------+|Variable_name|Value|+---------------+-------+|......
  • Java基础、MySQL数据库、Web前端
    三、简答题(共10题,共30分)1、请写出CSS的6种选择器,并举例?l 标签选择器:a、li、div、table等等l 类选择器:.nav、.itemsl id选择器:#logo、#item1l 通配符选择器:*l 后代选择器:ulli、divaspan等l 并集选择器:li,div,h1l 交集选择器:li.item、input.username等2、将图片展示在网页......
  • MySQL:日期时间函数整理
    文档https://www.w3schools.cn/sql/sql_ref_mysql.htmlhttps://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html(目录)获取日期时间函数描述NOW返回当前日期和时间CURDATE返回当前日期CURRENT_DATE返回当前日期CURRENT_TIME返回当......
  • MySQL的函数
    MySQL的函数概述:在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数函数可以理解为别人封装好的模板代码(相当于java中的方法)在MySQL中,函数非常多,主要可以分为以下几类聚合函数数学函数字符串函数日期函数控制流函数窗口函数聚合函数——group_concat()概述:在MySQL中,聚......
  • APPIUM2.0安装uiautomator2报错
    1、新装的系统,安装APPIUM2.0的时候,遇到了安装报错,如下图C:Usersgezirui>appiumdriverinstalluiautomator2Installinguiautomator2usingNPMinstallspecappium-uiautomator2-driverError:XEncounteredanerrorwheninstallingpackage:npmcommand'install--sa......
  • 01MySQL
    数据演变史#1.单独的文本文件没有固定的存放位置:C:\a.txtD:\aaa\c.txtF:\bbb\b.txt没有固定的数据格式:jason|123tony$123kevin~123'''程序彼此无法兼容没有统一的标准'''#2.软件开发目录规范按照文件功能的不同规定了相应的位置'''文件查找变得统一......
  • Entity FrameworkCore(EFCore)使用SqlServer、Mysql和Sqlite
    EntityFrameworkCore(EFCore)使用SqlServer、Mysql和Sqlite使用工厂方法模式创建抽象工厂类{publicDbSet<Blog>Blogs{get;set;}publicDbSet<Post>Posts{get;set;}}```......
  • MySQL 数据库查询与数据操作:使用 ORDER BY 排序和 DELETE 删除记录
    使用ORDERBY进行排序使用ORDERBY语句按升序或降序对结果进行排序。ORDERBY关键字默认按升序排序。要按降序排序结果,使用DESC关键字。示例按名称按字母顺序排序结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusernam......
  • MySQL 数据库查询与数据操作:使用 ORDER BY 排序和 DELETE 删除记录
    使用ORDERBY进行排序使用ORDERBY语句按升序或降序对结果进行排序。ORDERBY关键字默认按升序排序。要按降序排序结果,使用DESC关键字。示例按名称按字母顺序排序结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="youruserna......