目录

一.链接报错

客户端连接mysql出错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解答:

因为开启了使用sock的登陆

mysql -u root --socket=/ops/data/mysql/mysqld.sock -p

链接客户端出错

ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)

账号密码正确的,但是你用了localhost登陆,记录中test没有配置localhost的,所以要在mysql中创建一个 test@'localhost'的账户

ERROR 1045 (28000): Access denied for user 'maxscale'@'web1' (using password: YES)

这次是提示用web1登陆的,因为我加-h然后ip,就要在mysql中创建一个 test@'web1'的账户

交互登陆mysql出现warning警告Using a password

Warning: Using a password on the command line interface can be insecure.

解答:

使用

mysql_config_editor set --login-path=local --host=192.168.1.190 --user=zabbix --password

然后输入zabbix用户的密码

登陆时使用:

mysql --login-path=local -e "show databases;"

有sockfang方式登陆使用:

mysql --login-path=local --socket=/ops/data/mysql/mysqld.sock -e "show databases;"

删除

mysql_config_editor remove --login-path=remote

mysql_config_editor print --all

导入数据到数据库报错ERROR 1050

ERROR 1050 (42S01) at line 1: Table 'users' already exists

解答:

导入的数据在数据库中存在了,有可能是重复导入。

登陆数据库提示-bash: !@: event not found

-bash: !@: event not found

解答:

密码中带 !@ 需要 -p'123!@' 就好了

ACCess Denied for user(using password:YES)

解答:

没有你所输入的账户,可以跳过密码验证后创建一个账户再登陆

5.登陆mysql

Access denied for user 'qpolar'@'localhost' (using password: YES)

解答:

1.可能没这个用户,还有可能这个用户授权的是%,所以需要加 -h指定当前机器的ip

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

一种情况 mysql没启动

第二种 mysql连接默认为必须sock登陆,所以登陆需要添加--socket=xxx,或者更改/etc/my.cnf

Too many connections

这是因为mysql链接数太多了,使用mysql客户端命令或者图形化链接,一个就是一个链接数,如果有程序链接后没有关闭链接(close),将会导致占用一个连接数,大量的话将会沾满。不过会保留1个链接用于root登陆

用root登陆mysql后用如下命令查看,可以看到Command哪里有大量sleep,并且翻到最后,可以看到链接数有200多,已经满了。

show processlist

这种情况下,全是sleep(没有任何操作,但是占用一个链接),那就在my.cnf中添加如下,设置链接10秒没有动作将清理掉。

wait_timeout=10

如果不是大量sleep,而是正常的Query,那就证明连接数不够了

在my.cnf中添加如下,扩大链接数,不过最大也就1.6万多

max_connections=10000

Starting MySQL... ERROR! The server quit without updating PID file (/ops/logs/mysql/mysql.pid).

问题:

描述是mysql在没更新pid文件的情况下异常退出。意思是mysql异常退出了,并没有启动进程

查看日志发现如下:

130216 16:11:33 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
130216 16:11:33 [ERROR] Do you already have another mysqld server running on port: 3306 ?
130216 16:11:33 [ERROR] Aborting

意思是3306端口被占用,你可以netstat -unltp | grep :3306查看是否被占用。

如果没有呗占用,可以netstat -anptu | grep :3306,一把可以看到有进程还在使用3306端口链接中,这个应该是一个长链接,一直不释放

可以看到后面显示时一个java程序再链接3306端口。pid号为12461,那就ps -aux | grep 12461,终止这个程序,不终止无法释放

停止程序后,过一会再netstat -anptu | grep :3306,就可以看到端口释放了,再启动mysql就行了

远程连接ERROR 2003 (HY000)

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.xxx.xxx' (113)

解答:

1.需要开放mysql为0.0.0.0,然后建立可远程账号%

2.查看/etc/my.cnf

注释bind_address=127.0.0.1或者skip_networking

systemctl disable firewalld 开机不自启

systemctl stop firewalld 关闭防火墙

二.日志报错

ERROR 1786 (HY000): Statement violates GTID consistency: CREATE TABLE ... SELECT.

  • 错误描述:MySQL开启GTID后不支持此类语法,原因是弱事务,ddl和dml放一起了,无法保证事务的原子性。
  • 解决办法:(1)将gtid关闭。(2)create table select语句拆成create table t like t1;insert into t select * from t1;

ERROR 1197 (HY000): Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again

  • 问题描述:max_binlog_cache_size配置值太小,导致更新失败。
  • 解决办法:加大max_binlog_cache_size的配置,或者将隔离级别改成rr且将binlog format改成mixed。

如果是rc模式,mixed的话也会记录成row,原因是和gap lock有关,如果innodb_locks_unsafe_for_binlog参数设置为1就不会了(关闭gap lock,但是是read only属性,即要重启mysqld)

ERROR 1118 (42000): Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

  • 问题描述:创建表异常,原因是char/varchar字段的总长度超过4030。
  • 解决办法:关闭严谨的检查机制。set global innodb_strict_mode=0;但是不建议这么做,最好还是遵循提示建议,将char或者varchar改成text或者blog,或者将大字段拆解成独立表

从MySQL5.5.X版本开始,你可以开启InnoDB严格检查模式,尤其采用了页数据压缩功能后,最好是开启该功能。开启此功能后,当创建表(CREATE TABLE)、更改表(ALTER TABLE)和创建索引(CREATE INDEX)语句时,如果写法有错误,不会有警告信息,而是直接抛出错误,这样就可直接将问题扼杀在摇篮里。

三.其它报错

二.使用select * from 表名 group 字段名时出现ERROR 1055

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userdb.stu_info.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

修改/etc/my.cnf

添加一项代码

sql-mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"

重启服务 systemctl restart mysqld

忘记了密码怎么做

vim /etc/my.cnf

添加

skip-grant-tables=1

重启服务

systemctl restart mysqld

使用MySQL -uroot 回车登陆mysql。

导入提示data too long for column ..

修改字段类型大小(估计字段超了,建议调大一点;例子vartchar(48)改成varchar(100))

格式:alter table 表 modify 字段名 类型...

导出报错

可能没有w权限

chmod mysql /目录/

mysql关闭后启动失败

查看日志,

2016-01-20T10:00:19.935795Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory

160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

这说明mysql想创建pid文件,但是没有权限 所以无法启动

Mysql binlog 安全删除

如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件。

mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志 文件中,还包括每个语句执行的时间,也会记录进去的

下面来介绍几种解决方法:

  1. 如果你的数据库没有搭建主从同步这样的服务 , binlog 日志也不用的情况下 , 你可以将 /etc/my.cnf 文件下面行删除或注释掉

log-bin=mysql-bin

binlog_format=mixed

如果你需要这样的文件 , 那么建议你在主配置文件 /etc/my.cnf 中添加如下行 , 来限制 binlog 日志文件存在时间 , 过期自动删除

expire_logs_days = 7 # 只保留 7 天的日志文件

  1. 如果你直接得到一台服务器 , 上面的 binlog 日志已经影响到了磁盘空间 , 那么你将使用下面命令清除(登录mysql上执行)

mysql> reset master; # 清空所有 binlog 文件

  1. 如果你的得到的服务器 , mysql 还做了主从同步 , 那么上面的命令就不适合你了 , 因为 binlog 文件删除过多的话 , 会导致数据不同步

mysql> show slave status; # 你首先要来 slave 上查看从库读 binlog 到 了哪里

Master_Log_File: mysql-bin.000009 # 我们可以看到是 mysql-bin.000009

mysql> purge master logs to 'mysql-bin.000009'; # 我们可以在 master 中执行这条指令 , 将 binlog 文件删除至 mysql-bin.000009 前

mysql> purge master logs before '2014-11-18 00:00:00'; # 将 binlog 文件删除至此日期前

Mysql报错合集的更多相关文章

  1. MySQL报错合集解决办法: server has gone away, @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = ON

    server has gone away: 如下图 执行以下命令 show global variables like '%timeout%'; set global interactive_time ...

  2. mysql报错锦集

    MySQL 启动报错 - ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/ ...

  3. Redis cluster 集群报错合集

    目录 一.连接集群操作报错(error)MOVED 二.集群关闭后重启报错 三.Redis (error) NOAUTH Authentication required 四.Redis集群使用中突然挂 ...

  4. Jenkins 报错合集

    目录 一.启动项目显示,没有接受许可之前不能够自动安装 二.明明配置了jdk但还是说找不到 三.jenkins-RestAPI调用出现Error 403 No valid crumb was incl ...

  5. vc++6.0各种报错合集(附:VC++6.0调出打印窗口的方法)

    背景: 由于VC++6.0对于现在的我来说,只是一个工具,暂时没有太多的时间分配到这块去深究它,由于不明其原理,因此也只是在此把错误积累下来,以备下次相同错误出现时能快速排除,节省时间. 正文 一.出 ...

  6. Tomcat报错合集

    1.java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start c ...

  7. python报错合集

    哈喽,大家好呀 我又来啦,今天让我们来看看python中有哪些常见的异常报错吧 说到python中的报错,我们总是脑壳疼现在我们要学会去认识报错的类型 这样子,在我们出现报错的时候就可以知道报错的原因 ...

  8. ERRORS !MySQL 和 Javaweb 的报错合集

    ERROR:1175. You are using safe update mode and you tried to update a table without a WHERE that uses ...

  9. 解决:MySQL 报错:1045 - Access denied for user 'root'@'localhost'(using password YES)

    一.前言 今年疯狂迷上了开源,只要看到好的开源项目,就会不顾一切一股脑扎进去研究,五一期间发现一个很好的关于众筹的开源项目,但不巧,这个项目竟然是 PHP 写的,没学过 PHP,自然对这个开源项目毫无 ...

随机推荐

  1. Databend 设计概述 | 白皮书

    Databend 是一个开源的.完全面向云架构的新式数仓,它提供快速的弹性扩展能力,并结合云的弹性.简单性和低成本,使 Data Cloud 构建变得更加容易. Databend 把数据存储在像 AW ...

  2. 【NetWork】-- 网络原理

    2019-07-18  21:00:25  by冲冲 1. 网络拓扑 把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构(Network T ...

  3. Docker容器基础入门认知-网络篇

    这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...

  4. Codeforces 1270H - Number of Components(线段树)

    Codeforces 题目传送门 & 洛谷题目传送门 首先需发现一个性质,那就是每一个连通块所对应的是一个区间.换句话说 \(\forall l<r\),若 \(l,r\) 在同一连通块 ...

  5. R语言中的正则表达式(转载:http://blog.csdn.net/duqi_yc/article/details/9817243)

    转载:http://blog.csdn.net/duqi_yc/article/details/9817243 目录 Table of Contents 1 正则表达式简介 2 字符数统计和字符翻译 ...

  6. 求解线性递推方程第n项的一般方法

    概述 系数为常数,递推项系数均为一次的,形如下面形式的递推式,称为线性递推方程. \[f[n]=\begin{cases} C &n\in Value\\ a_1 f[n-1]+a_2 f[n ...

  7. js获取中国省市区,省市筛选、省市、省市筛选联动。【C#】【js】

    <style type="text/css"> .labelhide { -webkit-box-shadow: 0px 1px 0px 0px #f3f3f3 !im ...

  8. 数据库之JDBC

    1.简单认识一下JDBC 1).JDBC是什么? java database connection       java数据库连接 作用:就是为了java连接mysql数据库嘛 要详细的,就面向百度编 ...

  9. MPI 学习笔记

    目录 MPI学习笔记 MPI准备 概述 前置知识补充 环境部署 1.修改IP及主机名 2.关闭防火墙 3.实现免密码SSH登录 4.配置MPI运行环境 5.测试 程序的执行 编译语句 运行语句 MPI ...

  10. idea安装插件 JClassLib Bytecode viewer

    目录 idea安装插件 JClassLib Bytecode viewer 安装过程 使用 idea安装插件 JClassLib Bytecode viewer IDEA 中安装 jClassLib ...