目录

一.链接报错

客户端连接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. 新技能GET!在前端表格中花式使用异步函数的奥义

    背景 60年代时,操作系统中独立运行的单元通常是进程.但随着计算机技术的发展,人们发现在进程运行过程中,创建.撤销与切换都要花费较大的时空开销. 到了80年代为了解决这一问题,出现了更小的独立运行基本 ...

  2. [hdu7023]Yet Another Matrix Problem

    关于$f(x)$的条件,将$C=A\times B$代入,即$\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^{r}A_{i,k}B_{k,j}=x$ 调换枚举顺序,即$ ...

  3. vue-ref指令

    $refs是数组

  4. tomcat指定特定版本的jdk

    我是通过修改两个文件: setclasspath.bat和catalina.bat文件 linux在文件开头各自加上 export JAVA_HOME=/home/jdk/Java\jdk7\jdk1 ...

  5. 【软连接已存在,如何覆盖】ln: failed to create symbolic link ‘file.txt’: File exists

    ln -s 改成 ln -sf f在很多软件的参数中意味着force ln -sf /usr/bin/bazel-1.0.0 /usr/bin/bazel

  6. R语言与医学统计图形【5】饼图、条件图

    R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...

  7. MYSQL5.8----M4-5

    mysql> CREATE TABLE joson( id INT AUTO_INCREMENT PRIMARY KEY, context JSON NOT NULL)// Query OK, ...

  8. 15.Pow(x, n)

    Pow(x, n) Total Accepted: 88351 Total Submissions: 317095 Difficulty: Medium Implement pow(x, n). 思路 ...

  9. (转载)Java里新建数组及ArrayList java不允许泛型数组

    java中新建数组: String[] s;//定义的时候不需要设置大小 s = new String[5];//为数组分配空间时就要设置大小   对于ArrayList, ArrayList< ...

  10. 质量体系建设之路---可视化的MockServer

    一. 背景 福禄网络作为一家数字权益商品及服务提供商,覆盖了我们衣食住行的各种生活场景的权益内容,对接了如支付宝.京东.银行APP各种渠道,如何能够快速的响应渠道需求,提供稳定的接口服务,这就要求我们 ...