mysql错误集锦
1.使用myqldump备份出错:(--opt快速导出)
mysqldump -u root -p --database mysql --opt -h127.0.0.1 > mysql.sql
Enter password:
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
###因为mysqldump默认是不备份事件表的,只有加了--events 才会解决加上--events --ignore-table=mysql.events参数即可:
mysqldump -u root -p --database mysql --opt -h127.0.0.1 --events --ignore-table=mysql.events > mysql.sql
2.mysql登陆忘记密码 或者密码正确却登录不了
mysql -u root -p -h127.0.0.1 -P 42056(在mysql多实例的情况下,一定要加-P端口号的方式登录,否则即使密码再怎么对都无法登陆哟~!)
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
###在my.cnf中加入参数skip-grant-tables
mysql即可进入修改密码。
mysql> update user set password=PASSWORD('123') where user='root';
mysql> flush privileges;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123";
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
###授权的时候报错:执行flush privileges后再次授权就可以了。
3.基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤:
登录到mysql中,为root进行远程访问的授权,执行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;
"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
mysqldump: Couldn't execute 'SHOW FUNCTION STATUS WHERE Db = 's14_50hero'': Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted (1547)
错误原因:
是由于曾经升级过mysql,或用不同的MySQL版本进行备份迁移恢复。升级和迁移完后未使用mysql_upgrade升级数据结构造成的。
mysql.proc:
是MySQL的系统表,用来记录存储过程或函数的信息。使用desc mysql.proc 查看上面不同版本的MySQL的mysql.proc,果然出错的MySQL的mysql.proc只有16列。
解决办法:
使用命令:mysql_upgrade -udbaroot -pdbaroot20070508 -h127.0.0.1 --datadir=/usr/local/mysql/var --force (mysql_upgrade修复)
做好mysql AB复制后,master总报:
[Warning] Statement may not be safe to log in statement format.……
每更新一条数据就出现一次,导致日志太多,而且淹没了重要的日志。意思应该是statement 格式不安全。
statement format 应该是 binlog的一种格式,进入mysql查看一下
show global variables like 'binlog_format';
果然当前的格式为statement
需要把格式改为 mixed格式
修改slave的 my.cnf
在[mysqld]下面加入下面这行
binlog_format=mixed
4.mysql登录报错:
mysql -udbaroot -pdbaroot20170315 -h127.0.0.1 -P3306
mysql: relocation error: mysql: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference
原来是以前的文件/usr/bin/mysql没替换的原因 安装源码包mysql时候一定要先卸载rpm包的mysql
用以下二条命令搞定了。
cd /usr/bin
mv mysql mysql.rpmbak
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
5.mysql宕机起不来
#!/bin/sh
if (($# != 2));then
echo "Usage: sh mysql_online_repair.sh MDBIP DBSUFFIX"
exit 1
fi
. /etc/sysconfig/network-scripts/ifcfg-eth1
MDBIP=$1
HERODBSUF=$2
HEROUSER="dbauser"
HEROPWD="bUyfbxfVaCWaliQe"
ROOTPWD="dbaroot20070508"
[ ! -e "/etc/my.cnf" ] && exit
[ "$IPADDR" == "$(awk '/master-host/ {print $3}' /etc/my.cnf)" ] && exit
echo "mysqldump -h${MDBIP} -u${HEROUSER} -p${HEROPWD} -R --triggers --single-transaction --flush-logs --master-data --database ${HERODBSUF}_50hero ${HERODBSUF}_50hero_index ${HERODBSUF}_50hero_logs ${HERODBSUF}_50hero_ext0 > ${HERODBSUF}.sql"
mysqldump -h${MDBIP} -u${HEROUSER} -p${HEROPWD} -R --triggers --single-transaction --flush-logs --master-data --database ${HERODBSUF}_50hero ${HERODBSUF}_50hero_index ${HERODBSUF}_50hero_logs ${HERODBSUF}_50hero_ext0 > ${HERODBSUF}.sql
echo "mysql import ${HERODBSUF}.sql"
mysql -udbaroot -p${ROOTPWD} -h127.0.0.1 -e 'slave stop;'
mysql -udbaroot -p${ROOTPWD} -h127.0.0.1 < ${HERODBSUF}.sql
mysql -udbaroot -p${ROOTPWD} -h127.0.0.1 -e 'slave start;'
mysql -udbaroot -p${ROOTPWD} -h127.0.0.1 -e 'show slave status\G'
6.误删除数据库不要紧,binlog来帮你
首先分析什么时间出问题的,根据数据库丢失的时间处理binlog数据
直接本机导出,例如:导出 "2004-12-25 11:25:56"至"2004-12-25 11:25:56"的binlog数据:
mysqlbinlog --start-datetime="2004-12-25 11:25:56" --stop-datetime="2004-12-25 11:25:56" mysql-bin.000012 > 000012.sql
再把所有sql导入到数据库中
mysql -udbaroot -pdbaroot -h127.0.0.1 -f < 000012.sql
7.清除mysqlbinglog
#mysql -udbaroot -pdbaroot20070508 -h127.0.0.1 -e "purge binary logs to 'mysql-bin.000639';"
修改binlog过期自动清理(设为10天自动清理)
把binlog的过期时间设置为10天;
mysql -udbaroot -pdbaroot20070508 -h127.0.0.1 -e "set global expire_logs_days = 10;"
刷一下log使上面的设置生效,否则不生效。
mysql -udbaroot -pdbaroot20070508 -h127.0.0.1 -e "flush logs;"
为保证在MYSQL重启后仍然有效,在my.cnf中也加入此参数设置
expire_logs_days = 10
通过show global variables like '%expire_logs_days%';可以查看设置是否成功
mysql -udbaroot -pdbaroot20070508 -h127.0.0.1 -e "show global variables like '%expire_logs_days%';"
8.升级了mysql从5.0升级到5.1遇到的问题
(1)删除原先的mysql目录rm -rf
(2)安装5.1的rpm包
(3)mysql --version
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
这是因为没有识别到ncurses-devel开发包导致的。ncurses包yum已经安装,运行某些程序时(如:fp)提示:
解决方法:找到/usr/lib/下的libncurses.so文件。

ln -s libncurses.so.5.5 /usr/lib64/libtinfo.so.5 使用源文件做个软连接即可解决问题。
mysql --version
mysql Ver 14.14 Distrib 5.1.63, for unknown-linux-gnu (x86_64) using EditLine wrapper
8.Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/innobackupex line 23.
BEGIN failed--compilation aborted at /usr/bin/innobackupex line 23.
需要安装 yum install perl-Time-HiRes
9.配置了mysqld_multi启动mysql,但关闭时却关闭不了。查了一下,原来是如下原因:
在my.cnf中配置了密码:

如图改为正确的mysql登录密码即可。
mysql错误集锦的更多相关文章
- mysql 错误集锦
Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the fi ...
- MySQL错误日志总结
MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...
- Mysql错误:Ignoring query to other database解决方法
Mysql错误:Ignoring query to other database解决方法 今天登陆mysql show databases出现Ignoring query to other datab ...
- MySQL错误:The user specified as a definer (XXX@XXX) does not exist
今天由于更换服务器,重新再本地备份了数据库,试运行程序报错,如下: MySQL错误:The user specified as a definer (XXX@XXX) does not exist 意 ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)--MySQL错误
MySQL错误整理: 错误一: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my ...
- PHP开发者常犯的MySQL错误
PHP开发者常犯的MySQL错误 数据库是WEB大多数应用开发的基础.如果你是用PHP,那么大多数据库用的是MYSQL也是LAMP架构的重要部分. PHP看起来很简单,一个初学者也可以几个小时内就 ...
- Wamp Mysql错误消息 语言设置
Wamp Mysql错误消息 语言设置 http://my.oschina.net/wandershi/blog/264347 打开my.ini 找到 [wampmysqld] port = 33 ...
- EntityFramwork6连接MySql错误
EntityFramwork6连接MySql错误 使用EF6连接MySql产生Exception: ProHub.ssdl(2,2) : 错误 0152: MySql.Data.MySqlClient ...
- MySQL 错误日志(Error Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
随机推荐
- MySQL日期类型和毫秒值相互转换
有时需要将日期类型值转换成毫秒值,有时也要将毫秒值转换成日期,为了更方便,满足查询的需要. 现在,新建一张数据库表t_stu_info,并向表里插入数据 use test; show tables; ...
- 2016弱校联盟十一专场10.2 Longest Increasing Subsequence
这个dp题很有学问,我也是照着标称写的 还需要学习 补: if(order[i] < order[i-1]) pre[j] += now[j]; 这句的解释 首先order表示的是每个数字排序之 ...
- linux 安装沙盒virtualenv 、virtualenvwrapper
1.沙盒安装命令: 最新版本:sudo easy_install virtualenv或者sudo apt-get install virtualenv 指定版本:pip install virtua ...
- Python 第二天学习(文件的处理)
学习的内容是: python的文件处理 列表,元组,字典的使用 集合的使用 函数 文件file.textd的内容 A person with high EQ doesn't often critici ...
- 【BZOJ1798】【AHOI2009】维护序列(线段树)
题目链接 题解 这不就是luogu的线段树2的板子吗.... 没有任何的区别... 上代码吧... #include<iostream> #include<cstdio> #i ...
- Bzoj4237:稻草人
题面 传送门 Sol \(CDQ\)分治 先对\(x\)排序,对\(y\)在\(CDQ\)分治是从大到小排序 从大到小加入,右边用单调栈维护\(x\)递增,\(y\)递减的序列 左边就是找到\(x\) ...
- 1.3 java与C++有什么异同
相同点: 都是面向对象的语言,都使用了面向对象的思想(封装,继承,多态等),可重用性 不同点: 1.java没有指针,避免了指针可能引起的系统问题. 2.java不支持多重继承,C++可以.但java ...
- 某厂java算法题实现及改进【有n个人成一圈,顺序排号(编号为1到n),从第一个人开始报数1到3报数】
一.第一种实现: 实现比较简单,直接贴现成的代码了,第一种实现: /** * 总人数 * * @param d */ private static void sortQuerry1(int d) { ...
- 推荐一款有趣的APP-种子习惯
在女朋友的影响下接触到了种子习惯的app,一开始不觉得它有多大魅力,只知道它有契约的功能,有很多人分享自己的习惯,记录生活中的点滴. 毕业回家的寒假,家里比较冷,每天起床都需要莫大的勇气,挣扎半天最终 ...
- 记一次结合PHP多进程和socket.io解决问题的经历
公司是做棋牌游戏的.前段时间接到一个后台人工鉴定并处理通牌作弊玩家的需求,其中需要根据几个玩家的游戏ID查询并计算他们在某段时间内彼此之间玩牌输赢次数和输赢总额. 牌局数据是存储在日志中心的,他们把牌 ...