Categories
木有技术

Mysql 远程连接错误 10061

这个错误是远程服务器拒绝本地连接访问了(并非root账户权限问题,权限的报错是1045)
主要原因可能是

  1. 服务器防火墙把监听端口(3306)阻止了。不过这种情况比较少见
  2. 配置文件中绑定了本地回环127.0.0.1,没有绑定外网IP(或0.0.0.0监听所有)

针对问题2,可以检查下列文件:

  • /etc/mysql/my.cnf
  • /etc/mysql/mysql.conf.d/mysqld.cnf
  • /etc/mysql/conf.d/mysql.cnf
  • 其他所有cnf后缀的文件都可疑

找到文件中的以下字段

bind-address=127.0.0.1

将其删去,或将bind-address的值改成你的服务器IP地址
然后重启mysql服务

service mysql restart

 

Categories
不学无术 木有技术

MYSQL获取自增ID

参考:
http://flandycheng.blog.51cto.com/855176/280224
http://www.cnblogs.com/badtree/articles/2143103.html
http://my.oschina.net/fz04003/blog/63327
比较简单的方法是:
insert/select…等操作
然后直接下一条语句:

SELECT LAST_INSERT_ID()

LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
看参考文献中说,多用户的情况下这个方法不能用。不过在php环境下,单用户用足够的。
 

Categories
不学无术 木有技术

MySQL 引擎选择 MyISAM 还是 InnoDB?

建表的时候会选择数据库引擎,常用的有MyISAM和InnoDB,到底选哪个呢?
参考文献:

什么是MyISAM?
MyISAM是MySQL关系数据库管理系统的默认储存引擎。这种MySQL表存储结构从旧的ISAM代码扩展出许多有用的功能。在新版本的MySQL中,InnoDB引擎由于其对事务,参照完整性,以及更高的并发性等优点开始广泛的取代MyISAM。
每一个MyISAM表都对应于硬盘上的三个文件。这三个文件有一样的文件名,但是有不同的扩展名以指示其类型用途:.frm文件保存表的定义,但是这个文件并不是MyISAM引擎的一部,而是服务器的一部分;.MYD保存表的数据;.MYI是表的索引文件。
什么是InnoDB?
InnoDB是MySQL的另一个存储引擎,正成为目前MySQL AB所发行新版的标准,被包含在所有二进制安装包里。较之于其它的存储引擎它的优点是它支持兼容ACID的事务(类似于PostgreSQL),以及参数完整性(即对外键的支持)。
Oracle公司与2005年10月收购了Innobase。Innobase采用双认证授权。它使用GNU发行,也允许其它想将InnoDB结合到商业软件的团体获得授权。

MyISAM vs Innodb – Quick comparison Table | 快速比较表:

MyISAM Innodb
Not *ACID compliant and non-transactional *ACID compliant and hence fully transactional with ROLLBACK and COMMIT and support for Foreign Keys
MySQL 5.0 Default Engine Rackspace Cloud Default Engine
Offers Compression Offers Compression
Requires full repair/rebuild of indexes/tables Auto recovery from crash via replay of logs
Changed Db pages written to disk instantly Dirty pages converted from random to sequential before commit and flush to disk
No ordering in storage of data Row data stored in pages in PK order
Table level locking Row level locking

在StackOverflow上的小总结:

Frequent reading, almost no writing 常有读取操作,几乎没有写操作=> MyISAM
Full-text search in MySQL <= 5.5      => MyISAM

InnoDB的设计目标是处理大容量数据库系统,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。

Categories
木有技术

mysqld.exe 内存占用高 达 400M 的解决方法

http://www.debugease.com/mysql/3404188.html

  1. mysqld.exe 内存占用达 400M 这是很正常的啊!mysqld默认需要部分内存,还有你在my.ini配置的各种缓存,例如:
    innodb_buffer_pool_size=107M
    innodb_log_file_size=18M
    innodb_log_buffer_size=2M

     

  2.  
    哈哈,这个好解决哈,
    paip.mysql 5.6 数据库 占用 内存 过多 的 解决方案
    下载了mysql5.6.12 ,默认占用内存达400多M,  而原来使用的5.0 只有30M..
    解决方案:调整以下参数
    —————-
    performance_schema_max_table_instances=600
    table_definition_cache=400
    table_open_cache=256
    这样下来,mysql5.6.12就只使用  40—60M左右的内存了.

 
 
附注:mysql 5.6.x的配置文件目录,应该在安装目录的根目录下,反正文件名是my.ini,是在不想到安装的分区搜索下肯定有啦。
另外更改结束后不能忘记重启服务哦!