mysqlerror2003

合集下载

Mysql连接数太多ERROR1040(HY000):Toomanyconnections

Mysql连接数太多ERROR1040(HY000):Toomanyconnections

Mysql连接数太多ERROR1040(HY000):Toomanyconnections数据库连接报错:ERROR 1040 (HY000): Too many connections1、查看连接数/usr/local/mysql/bin/mysqladmin -h host -u root -p123456 status这条命令返回MYSQL当前状态的⼏个值Uptime: 18869 Threads: 1 Questions: 1 Slow queries: 0 Opens: 33 Flush tables: 1 c: 0 Queries per second avg: 0.000Uptime:是mysql正常运⾏的时间。

Threads:指开启的会话数吧。

Questions:服务器启动以来客户的问题(查询)数⽬(应该是只要跟mysql作交互:不管你查询表,还是查询服务器状态都问记⼀次)。

Slow queries:按字⾯意思是慢查询的意思,不知道musql认为多久才⾜够算为长查询,这个先放着。

Opens:服务器已经打开的数据库表的数量Flush tables: 服务器已经执⾏的flush ...、refresh和reload命令的数量。

open tables:通过命令是⽤的数据库的表的数量,以服务器启动开始。

Queries per second avg:select语句平均查询时间?2、更改配置⽂件的连接数配置⽂件⼀般存在位置:/etc/f修改项:[mysqld]下增加max_connections(最⼤连接数)和wait_timeout(连接等待时间)[mysqld]max_connections=5000wait_timeout=53、停⽌和启动服务停⽌mysql服务:/usr/local/mysql/bin/mysqladmin shutdown -uroot-p123456启动mysql服务:/usr/local/bin/mysqld_safe --defaults-file=/etc/f--user=root说明:--defaults-file为指定的配置⽂件--user为登录mysql的⽤户名4、重启成功后,登录mysql去kill连接数进⼊命令⾏:./mysql -uroot -p123456查看连接信息:mysql> show processlist;Host列为所以连接过来的信息,Id为对应的标识,可以kill掉mysql> kill 1;。

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

mysql+mycat搭建稳定⾼可⽤集群,负载均衡,主备复制,读写分离数据库性能优化普遍采⽤集群⽅式,oracle集群软硬件投⼊昂贵,今天花了⼀天时间搭建基于mysql的集群环境。

主要思路简单说,实现mysql主备复制-->利⽤mycat实现负载均衡。

⽐较了常⽤的读写分离⽅式,推荐mycat,社区活跃,性能稳定。

测试环境MYSQL版本:Server version: 5.5.53,到官⽹可以下载WINDWOS安装包。

注意:确保mysql版本为5.5以后,以前版本主备同步配置⽅式不同。

linux实现思路类似,修改f即可。

A主mysql。

192.168.110.1:3306, ⽤户root,密码root。

操作系统:win7 x64,内存:4g安装路径:C:\Program Files\MySQL\MySQL Server 5.5\binB备mysql。

192.168.110.2:3306, ⽤户root,密码root。

操作系统:win2003 x64,内存:1g安装路径:C:\Program Files\MySQL\MySQL Server 5.5\binA主、B备的mysql中创建sync_test数据库实现mysql主备复制主要思路:A主mysql开启⽇志,B备mysql读取操作⽇志,同步执⾏。

⼀般为主备同步,主主同步不推荐使⽤。

配置A主mysql1)修改my.ini。

需要在log-bin="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-bin.log"的相关位置创建log⽬录,以及mysql-bin.log⽂件。

[mysqld]server-id=1 #主机标⽰,整数port=3306log-bin="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-bin.log" #确保此⽂件可写read-only=0 #主机,读写都可以binlog-do-db=sync_test #需要备份数据库,多个写多⾏binlog-ignore-db=mysql #不需要备份的数据库,多个写多⾏2)允许MYSQL远程访问#登录mysql console进⼊%home%/bin,执⾏mysql -uroot -proot#授权。

MYSQL之表分区----按日期分区

MYSQL之表分区----按日期分区

MYSQL之表分区----按⽇期分区MYSQL之表分区----按⽇期分区于 2015-07-16 14:23:38 发布40948收藏 16错误的按⽇期分区例⼦最直观的⽅法,就是直接⽤年⽉⽇这种⽇期格式来进⾏常规的分区:PLAIN TEXTCODE:1.mysql> create table rms (d date)2.-> partition by range (d)3.-> (partition p0 values less than ('1995-01-01'),4.-> partition p1 VALUES LESS THAN ('2010-01-01'));上⾯的例⼦中,就是直接⽤"Y-m-d"的格式来对⼀个table进⾏分区,可惜想当然往往不能奏效,会得到⼀个错误信息: ERROR 1064 (42000): VALUES value must be of same type as partition function near '),partition p1 VALUES LESS THAN ('2010-01-01'))' at line 3上述分区⽅式没有成功,⽽且明显的不经济,⽼练的DBA会⽤整型数值来进⾏分区:PLAIN TEXTCODE:1.mysql> CREATE TABLE part_date12.-> ( c1 int default NULL,3.-> c2 varchar(30) default NULL,4.-> c3 date default NULL) engine=myisam5.-> partition by range (cast(date_format(c3,'%Y%m%d') as signed))6.-> (PARTITION p0 VALUES LESS THAN (19950101),7.-> PARTITION p1 VALUES LESS THAN (19960101) ,8.-> PARTITION p2 VALUES LESS THAN (19970101) ,9.-> PARTITION p3 VALUES LESS THAN (19980101) ,10.-> PARTITION p4 VALUES LESS THAN (19990101) ,11.-> PARTITION p5 VALUES LESS THAN (20000101) ,12.-> PARTITION p6 VALUES LESS THAN (20010101) ,13.-> PARTITION p7 VALUES LESS THAN (20020101) ,14.-> PARTITION p8 VALUES LESS THAN (20030101) ,15.-> PARTITION p9 VALUES LESS THAN (20040101) ,16.-> PARTITION p10 VALUES LESS THAN (20100101),-> PARTITION p11 VALUES LESS THAN MAXVALUE );Query OK, 0 rows affected (0.01 sec)搞定?接着往下分析PLAIN TEXTCODE:1.mysql> explain partitions2.-> select count(*) from part_date1 where3.-> c3> '1995-01-01' and c3 <'1995-12-31'\G4.*************************** 1. row ***************************5.id: 16.select_type: SIMPLE7.table: part_date18.partitions: p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p119.type: ALL10.possible_keys: NULL11.key: NULL12.key_len: NULL13.ref: NULL14.rows: 810000015.Extra: Using where16.1 row in set (0.00 sec)万恶的mysql居然对上⾯的sql使⽤全表扫描,⽽不是按照我们的⽇期分区分块查询。

mysql报错ThisfunctionhasnoneofDETERMINISTIC解决方案

mysql报错ThisfunctionhasnoneofDETERMINISTIC解决方案

mysql报错ThisfunctionhasnoneofDETERMINISTIC解决⽅案本⽂章向朋友们介绍开启bin-log⽇志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法,创建存储过程时出错信息:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)原因:这是我们开启了bin-log, 我们就必须指定我们的函数是否是1 DETERMINISTIC 不确定的2 NO SQL 没有SQl语句,当然也不会修改数据3 READS SQL DATA 只是读取数据,当然也不会修改数据4 MODIFIES SQL DATA 要修改数据5 CONTAINS SQL 包含了SQL语句其中在function⾥⾯,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被⽀持。

如果我们开启了 bin-log, 我们就必须为我们的function指定⼀个参数。

解决⽅法:SQL codemysql> show variables like 'log_bin_trust_function_creators';+---------------------------------+-------+| Variable_name | Value |+---------------------------------+-------+| log_bin_trust_function_creators | OFF |+---------------------------------+-------+mysql> set global log_bin_trust_function_creators=1;mysql> show variables like 'log_bin_trust_function_creators';+---------------------------------+-------+| Variable_name | Value |+---------------------------------+-------+| log_bin_trust_function_creators | ON |这样添加了参数以后,如果mysqld重启,那个参数⼜会消失,因此记得在f配置⽂件中添加:log_bin_trust_function_creators=1感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。

mysql链接错误:LostconnectiontoMySQLserveratreadin。。。

mysql链接错误:LostconnectiontoMySQLserveratreadin。。。

mysql链接错误:LostconnectiontoMySQLserveratreadin。

在远程连接mysql的时候,连接不上,出现如下报错:Lost connection to MySQL server at 'reading authorization packet', system error: 0原因分析:mysql开启了DNS的反向解析功能,这样mysql对连接的客户端会进⾏DNS主机名查找。

mysql处理客户端解析过程:1)当mysql的client连过来的时候,服务器会主动去查client的域名。

2)⾸先查找 /etc/hosts ⽂件,搜索域名和IP的对应关系。

3)如果hosts⽂件没有,则查找DNS设置,进⾏DNS反向解析,直到timeout连接失败。

mysql的DNS反向解析:1)mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配er⾥的权限记录(某些是⽤hostname定义的)。

2)如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。

解决⽅案:1)把client的ip写在mysql服务器的/etc/hosts⽂件⾥,随便给个名字做主机映射即可。

2)在f配置⽂件中的[mysqld]区域添加skip-name-resolve,即跳过mysql连接的DNS反向解析功能,这样能很好地提⾼mysql性能。

在这种情况下,就只能使⽤MySQL授权表中的IP来连接mysql服务了。

对于第⼀种⽅法显然⽐较笨,也不实⽤!强烈推荐第⼆种⽅法,添加skip-name-resolve选项可以禁⽤dns解析,这样的话,就不能在mysql 的授权表中使⽤主机名了,只能使⽤IP。

--------------------------------------------------------------------------------------------------------------另外:如果在f⽂件中配置了bind-address地址绑定的地址(说明别的机器远程只能通过这个绑定的本机地址来连接mysql),可以将其注释掉。

【IT专家】MySQL使用数据库出现如下异常,用的是dbcp连接池,, 跪求!!!

【IT专家】MySQL使用数据库出现如下异常,用的是dbcp连接池,, 跪求!!!

本文由我司收集整编,推荐下载,如有疑问,请与我司联系MySQL使用数据库出现如下异常,用的是dbcp连接池,,跪求!!!严重:Servlet.service()forservlet[springDispatcherServlet]incontextwithpath[/springmybatis]t hrewexception[Requestprocessingfailed;nestedexceptionisorg.mybatis.spring.MyBatisSyst emException:nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cause:org.springframework.jdbc.CannotGetJdbcConnectionEx ception:CouldnotgetJDBCConnection;nestedexceptionisjava.sql.SQLException:Cannotcre atePoolableConnectionFactory(Accessdeniedforuser’root’@’localhost’(usingpassword:YE S)) ###Theerrormayexistinfile[D:\Tomcat\webapps\springmybatis\WEB-INF\classes\com\hellojava\springmybatis\entity\UserMapper.xml]###Theerrormayinvolvecom.hellojava.springmybatis.dao.IUserDao.loadbyId###Theerroroccurredwhileexecutingaquery###Cause:org.springframework.jdbc.CannotGetJdbcConnectionException:CouldnotgetJD BCConnection;nestedexceptionisjava.sql.SQLException:CannotcreatePoolableConnection Factory(Accessdeniedforuser’root’@’localhost’(usingpassword:YES))]withrootcause java.sql.SQLException:Accessdeniedforuser’root’@’localhost’(usingpassword:YES) atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)atcom.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)atcom.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)atcom.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)。

MySQL5.6数据导入MySQL5.7报错:ERROR1031(HY000)

MySQL5.6数据导入MySQL5.7报错:ERROR1031(HY000)

MySQL5.6数据导⼊MySQL5.7报错:ERROR1031(HY000)⼀、故障现象今天将⼀个在MySQL5.7上的数据导⼊到MySQL5.6⾥⾯去,默认存储引擎都是InnoDB,导⼊报错如下:[root@oratest52 data]# mysql -uroot -p123456 < /data/127.sqlERROR 1031 (HY000) at line 598885: Table storage engine for 't_config_dbconnects' doesn't have this option报错提⽰598885⾏有问题,t_config_dbconnects表的存储引擎不⽀持这个选项。

由于备份⽂件较⼤(50G),不可能⽤vi打开去看,⽤sed⽂件查看该表的建表sql如下:[root@oratest52 data]# sed -n '598870,598899p' 127.sql---- Current Database: `db_config`--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db_config` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `db_config`;---- Table structure for table `t_config_dbconnects`--DROP TABLE IF EXISTS `t_config_dbconnects`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `t_config_dbconnects` (`ID` smallint(6) unsigned NOT NULL AUTO_INCREMENT,`NAME` char(50) DEFAULT NULL,`HOST` char(50) NOT NULL DEFAULT '',`PORT` char(10) NOT NULL DEFAULT '',`USER` char(50) NOT NULL DEFAULT '',`PASSWORD` char(50) NOT NULL DEFAULT '',`CHARSET` char(30) DEFAULT NULL,`DBNAME` char(50) NOT NULL DEFAULT '',`ABOUT` char(200) DEFAULT NULL,`POSTTIME` datetime DEFAULT NULL,`LASTUSER` char(50) DEFAULT NULL,PRIMARY KEY (`ID`),UNIQUE KEY `IDX_NAME` (`NAME`)) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;可以看到最后⼀⾏中有ROW_FORMAT=FIXED⼆、初步分析发现报错的表的ROW_FORMAT格式是FIXED,并不是我们熟悉的Dynamic。

Mysql基于binlog方式进行数据同步常见问题解决方案汇总

Mysql基于binlog方式进行数据同步常见问题解决方案汇总

Mysql基于binlog⽅式进⾏数据同步常见问题解决⽅案汇总Mysql基于binlog⽅式进⾏数据同步常见问题解决⽅案汇总0、前置信息0.1、集群信息服务器连接信息:192.168.91.131(master)192.168.91.132(slave1)192.168.91.133(slave2)使⽤ssh⽅式访问服务器:ssh root@192.168.91.*输⼊对应密码访问0.2、从库数据导⼊在192.168.91.131命令⾏窗⼝下直接执⾏数据库表数据导⼊:mysqldump --default-character-set=utf8mb4 --host=192.168.91.131 -uroot -p123456 --opt --set-gtid-purged=OFF 从库需要导⼊的表名 | mysql --host=从库IP地址 --port=3306 -uroot -p123456 --default-character-set=utf8mb4 -C 从库需要导⼊的表名说明:使⽤此⽅式进⾏数据导⼊时,保证⽬标数据库中数据库表与源数据库中数据表⼀致,同时,⽬标数据库中数据表保证为空表0.3 、从库设置同步过滤规则---- 从库设置同步过滤规则(在f中设置,对应k8s在配置字典中配置) ----replicate_wild_do_table =要同步的数据库名.%replicate_wild_ignore_table =要忽略的数据库名.%1、数据同步(binlog⽅式)主、从库使⽤binlog⽅式同步数据,操作步骤:1.1、主库执⾏命令mysql> show master status;获取主库的binlog⽂件和当前位置,即查询结果的 File、Position 字段,例如:File字段值为 binlog.XXXXXXXX,Position 字段值为 YYYYYYYY1.2、从库执⾏命令mysql> show slave status;mysql> stop slave;mysql> reset slave;mysql> CHANGE MASTER TO MASTER_HOST = '192.168.91.131', MASTER_USER = 'repl',MASTER_PASSWORD = '123456', MASTER_PORT = 3306, MASTER_LOG_FILE='binlog.XXXXXXXX',MASTER_LOG_POS=YYYYYYYY;mysql> start slave;mysql> show slave status;2、常见问题汇总及解决2.1、主、从库数据表字符集不⼀致2.1.1、报错信息Last_SQL_Errno: 1677Last_SQL_Error: Column1of table'XXX' cannot be converted from type 'varchar(150(bytes))'to type 'varchar(110(bytes))'2.1.2、解决⽅案1> 主、从库查看数据表的字符集信息mysql> show create table 表名;2> 从库执⾏如下命令mysql> stop slave;mysql>alter table table_name convert to character set主库数据表字符集;mysql> start slave;mysql> show slave status;2.2、主库删除从库不存在数据2.2.1、报错信息Last_Errno: 1032Last_SQL_Error: Could not execute Delete_rows event on table XXX; Can't find record in 'XXX',Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;2.2.2、解决⽅案1> 在从库执⾏如下命令:mysql> show slave status;找到Exec_Master_Log_Pos的值,例如:XXXX;Last_Error信息中的end_log_pos的值,例如:YYYYYY2> 在主库使⽤⾃带的mysqlbinlog查看删除信息:cd /usr/binmysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS --start-position=XXXX --stop-position=YYYYYY /var/lib/mysql/binlog.000001说明:主库mysqlbinlog所在⽂件夹位置,可以使⽤如下命令查找:3> 找到删除语句之后,在从库插⼊删除数据,例如:insert into test values(1, 'jack');4> 在从库执⾏如下命令mysql> start slave;mysql> show slave status;插⼊数据时,如果遇到索引冲突的问题,可参考如下操作:mysql插⼊数据时,出现Duplicate entry 'XXX'for key'XXX'的问题:可以使⽤replace into,replace into是insert into的增强版:(1) 如果插⼊的数据不重复,执⾏的是insert into操作,影响1条记录(2) 如果插⼊的数据重复,执⾏的是update操作,影响2条记录:先删除旧的数据,再插⼊新的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安装ipv6后再安装mysql配置时提示:error nr.2003 can't connect to mysql server on 'localhost'(10061)
说来惭愧啊,其实前段时间遇到过此问题,可是后来稀里糊涂的就解决了,详情可以找找我前面发表过的文章.这不这次就又遇到了,
error nr.2003
can't connect to mysql server on 'localhost'(10061)
还是解决不了,学习这事会就是会,不会就是不会啊............感触颇深.
苍天不负有心人啊,最后还是让我找到了解决方法.
首现ping localhost 出现了下面的截图,有没有感到奇怪呢?为什么出现的地址不是
127.0.0.1
前端时间研究利用IPv6登个国外网站什么的,就给自己电脑安装了ipv6(我的电脑是xp),唉你猜对了,问题就出在这ipv6上.
关闭它!
用下面附录的方法可以关闭ipv6(win7)
也可以用修改HOST文件的方式使localhost与127.0.0.1等同,如下:
从 WinVista 和 Win7 的 hosts 文件里可以看出,localhost 并没有直接被解析为 127.0.0.1 ,而是 DNS 将根据当前连接的协议来自动选择将其解析为 v4 地址还是 v6 地址:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
而在此我们为了解决 localhost 的连接问题,可以给 host 加上这么一条,以告诉系统强制使用IPv4 连接。

直接在 hosts 文件的末尾加上
127.0.0.1 localhost
这一条语句(需要修改文件权限)。

再次 Ping 一下 localhost:
正在 Ping WinSeven-PC [127.0.0.1] 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失)
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0 ms,平均 = 0ms
再ping下试试,那熟悉的界面又回来了.
这时继续安装配置则没有问题!
ps:
Win7下禁用或关闭IPv6
禁用或关闭IPv6原因有很多,比如
∙不打算使用此IPv6的功能
∙禁用IPv6的此功能可以节约系统的CPU和内存资源
∙更好的网络性能
方法也有很多,比如修改注册表等…
这里只说简单容易操作的方法,首先图形界面中,取消选择IPv6相关项目,/view/ecfdb4260722192e4536f6e9.html。

相关文档
最新文档