标签归档:mysql

mysql Lost connection to MySQL server at ‘reading initial communication packet

mysql 爆出,本地连接正常,远程链接无法链接,爆出错误 Lost connection to MySQL server at ‘reading initial communication packet 大量无法远程链接的问题 1.iptables 导致 看看iptables -L 2.mysqld 下增加 skip-name-resolve 我加了发现不行 看下面 3.bind-adress 我发现mysqld 还有一句 bind-address = ::ffff:127.0.0.1 [mysqld] #bind-address = ::ffff:127.0.0.1 local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended … 继续阅读

发表在 数据库 | 标签为 | 一条评论

Centos 7 mysql 如何重启动MariaDB篇

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。[3] MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB # yum install mysql -y # mysql ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111) 试着去启动mysql服务,仍然不行   # systemctl start mysql Failed to issue method call: Unit mysql.service failed to load: No such … 继续阅读

发表在 Linux, 数据库 | 标签为 , , | 留下评论

mysql 调用,新手常犯的10个错误

经常收到安全部门的警告邮件,SQL注入,XSS攻击漏洞,等等。偶尔还被黑客挂了小马,郁闷不。 数据库执行太慢(月小升博客的经验,基本是没有正确使用索引导致) 看看MYSQL常犯的11个错误 1、使用MyISAM而不是InnoDB MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB。 MyISAM是默认使用的。但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的。MyISAM不支持外键的 约束,这是保证数据完整性的精华所在啊。另外,MyISAM会在添加或者更新数据的时候将整个表锁住,这在以后的扩展性能上会有很大的问题。 解决办法很简单:使用InnoDB。 2、使用PHP的mysql方法 PHP从一开始就提供了MySQL的函数库。很多程序都依赖于mysql_connect、mysql_query、mysql_fetch_assoc等等,但是PHP手册中建议: 如果你使用的MySQL版本在4.1.3之后,那么强烈建议使用mysqli扩展。 mysqli,或者说MySQL的高级扩展,有一些优点: 有面向对象的接口 prepared statements(预处理语句,可以有效防止SQL-注入攻击,还能提高性能) 支持多种语句和事务 另外,如果你想支持多数据库那么应该考虑一下PDO。 3、不过滤用户输入 应该是:永远别相信用户的输入。用后端的PHP来校验过滤每一条输入的信息,不要相信JAVAscript。像下面这样的SQL语句很容易就会被攻击: $username = $_POST["name"]; $password = $_POST["password"]; $sql = "SELECT userid FROM usertable WHERE username=’$username’AND password=’$password’;"; // run query… 这样的代码,如果用户输入”admin’;”那么,就相当于下面这条了: SELECT userid … 继续阅读

发表在 PHP, 数据库 | 标签为 , , | 留下评论

读取mysql一个库下面的所有的表table

<?php require ‘class/db.php’;   $sql = "select * from information_schema.tables where table_schema=’ecshop’ and table_type=’base table’ order by TABLE_ROWS desc ";   $arr = $db->queryArray($sql);   //var_dump($arr); foreach ($arr as $k => $v) { $tbname = $v->TABLE_NAME; $rows = $v->TABLE_ROWS; echo … 继续阅读

发表在 PHP, 数据库 | 标签为 | 留下评论

mysql底层命令,导出导入数据库

create USER ‘admin’@'%’ IDENTIFIED BY ‘rtretw’; create USER ‘admin’@'localhost’ IDENTIFIED BY ‘rtretw’;   SELECT DISTINCT CONCAT(’User: ”’,user,”’@”’,host,”’;') AS query FROM mysql.user;   CREATE DATABASE javaer DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;     GRANT ALL ON javaer.* TO ‘admin’@'%’; GRANT … 继续阅读

发表在 Linux | 标签为 | 留下评论

对一个未知类型的数据,进行java判断

常见的情况是,我们从mysql读出了数据,批量灌入到HASHMAP里,于是这个HashMap里,有int类型,有string,有boolean,有long 下面的函数,直接判断出数据的类型,方便我们做转义的操作。之前写过一个instanceof 的专门用法。 public static <T> String getType(T t){ if(t instanceof String){ return "string"; }else if(t instanceof Integer){ return "int"; }else if(t instanceof Boolean){ return "boolean"; }else{ return " do not know"; } } 一般这么用。 Iterator iter = h.entrySet().iterator(); while … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

mysql 的 MyISAM和 InnoDB的区别

  一、文件存储     MyISAM   每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。   .frm文件存储表定义。   数据文件的扩展名为.MYD (MYData)。   索引文件的扩展名是.MYI (MYIndex)。   InnoDB   基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB   二、事务支持   MyISAM   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持   InnoDB   InnoDB提供事务支持事务,外部键等高级数据库功能   三、mysql执行方式   MyISAM   如果执行大量的SELECT,MyISAM是更好的选择   InnoDB   1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表   2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。   3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用   四、AUTO_INCREMENT   每表一个AUTO_INCREMEN列的内部处理。   MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。   AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置   对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引   更好和更快的auto_increment处理   INNODB   如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。   自动增长计数器仅被存储在主内存中,而不是存在磁盘上   关于该计算器的算法实现,参考AUTO_INCREMENT列在InnoDB里如何工作 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

使用一个脚本监控mysql进程

#!/bin/sh ps -fe|grep mysqld |grep -v grep if [ $? -ne 0 ] then echo "start process….." service mysql start else echo "runing….." fi   DATE=`date +%Y%m%d%H%M%S` echo $DATE >> /backup/mysql/test.txt 0表示存在的 $? -ne 0 不存在,$? -eq 0 存在 vi … 继续阅读

发表在 Linux, 数据库 | 标签为 , , , | 留下评论

mysql 无故崩溃,自动退出解决方案

最近博客服务器的mysql mysql经常崩溃,挂了,不过我发现了的时候,重启就好了。基本一周来一次 2016-09-20 15:17:04 13896 [Note] Event Scheduler: Loaded 0 events 2016-09-20 15:17:04 13896 [Note] /opt/lampp/sbin/mysqld: ready for connections. Version: ’5.6.21′ socket: ‘/opt/lampp/var/mysql/mysql.sock’ port: 3306 Source distribution 2016-09-21 13:34:04 27385 mysqld_safe Number of processes running now: 0 2016-09-21 13:34:04 27385 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

mysqldump 导出发生Lost connection to MySQL server during query

在mysqldump备份导出的时候类似用如下语句导出数据 mysqldump -uroot -p’passwd’ –opt –default-character-set=utf8 –triggers -R –hex-blob –single-transaction –no-autocommit –master-data=2 test_game mail >mail.sql 出现类似如下报错: mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `mail` at row: 1754283 查询资料 大概说是因为mysqldump来不及接受mysql server端发送过来的数据,Server端的数据就会积压在内存中等待发送,这个等待不是无限期的,当Server的等待时间超过net_write_timeout(默认是60秒)时它就失去了耐心,mysqldump的连接会被断开,同时抛出错误Got error: 2013: Lost connection。 … 继续阅读

发表在 数据库 | 标签为 , | 留下评论