MySQL 多实例运行

今天要在服务器上运行多个 MySQL,用不同的端口,彼此隔离数据。 我最先想到的办法是下源码,编译多份,编译的时候设置不同的默认路径、端口和 my.cnf 配置文件位置。 被同事劝止…… 人家告诉我不用装多份,只装一份二进制 rpm 版本,然后 copy 多份配置文件,再用不同的命令行参数启动即可。 /usr/sbin/mysqld –user=mysql –skip-external-locking \ […]

Duplicate entry ‘localhost-‘ for key 1

导致这个错误的原因: 因为安装系统时设置了hostname为localhost导致mysql在创建表的时候没有创建成功。因此mysql库中user表里没有root这个用户或者说root没有显示出来,无法查看root的状态。这时需要手动创建。然而在安全模式无法直接创建用户,错误见下。 变个方向就能创建了,先给root给予权限,然后刷新表。之后就可以创建了。 一、killall -TERM mysqld 以安全模式启动mysql /usr/bin/mysqld_safe –skip-grant-tables & 进入mysql /usr/bin/mysql mysql> use mysql […]

MySQL 索引 优化 Using filesort

MySQL 数据库,MyISAM 类型的表 table_item,有 5、6 个字段,主键是 id。 user_id 和 item_id 两个字段都是单独的 INDEX 类型的索引。 问题是如何发现的? 今天搞程序,在自己的开发环境下,打开一个简单的页面都要好长时间,不知道问题出在哪里,只发现硬盘灯闪个不停。 […]

PHP MySQL localhost 127.0.0.1

今天刚发现一个问题,PHP连接MySQL的时候,不同环境的localhost会有不同的结果。 我的服务器装了2套PHP,其中有一个是用源码编译的,另一个是xampp集成包。 编译的php用于生产环境,xampp用来建立测试环境。 把线上的代码放到测试环境下,居然报告无法连接MySQL! 刚开始以为是端口的问题,可是我在命令行下怎么连接都没问题。最后抱着试试看的想法,把localhost改成了127.0.0.1,这回居然成功了。 我不能理解,线上代码运行的好好的,配置文件就是localhost呀,怎么到测试环境就必须改成127.0.0.1才行? 两套环境,主要的区别就是PHP,虽然版本都一样,不过xampp是编译好的,我估计问题出在这里。 然后立刻写了一个测试程序: $connA = mysql_connect(‘127.0.0.1:3306’, ‘leakon’, ‘pass’); $connB = […]

PDO Quick Guide

Book: PHP Data Objects Layer (PDO) Author: Ilia Alshanetsky Download: http://down.leakon.com/software/2008/11/quebec_PDO.pdf 其实这不能算是一本书,只是一个用于演示的文档,算是一个大纲。 这个简明扼要的大纲告诉你什么是PDO,为什么推荐你在PHP5中使用PDO作为数据库操作层的封装接口。 不仅更安全,而且有更好的性能,用起来更简单。 我在做一个数据库ORM接口,参考了Propel和Doctrine的设计思想,并只针对MySQL5,不做任何框架性或通用数据库的考虑,完全是为了简单、易用和高性能。底层数据库操作依靠PDO完成。 敬请关注~~