浏览模式: 普通 | 列表
分类: Mysql | < | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | >
p.s. 今天改了下门户的配置,导致了以前推送数据的丢失,很郁闷,就仔细查看了下pw8的代码,终于找到了原因,原来除了ID之外,title也不能做修改,不然就会丢失已添加的推送数据。

打开配置文件/html/portal/oindex/config.htm,有如下获取模块定义:
引用
<pw id="P4345oindex" />
<h4><span>美食</span></h4>
<pw id="U4803oindex" />
                   <ul class="cc o_home_imglistA">
                   <list num="18" action="user" cachetime="3" ifpushonly="0" title="美食达人" />
                   <loop>
                    <li><a
...

阅读全文…

mysql 二进制日志功能及维护

[ 2011-01-04 20:23:55 | 作者: admin ]
  vi /etc/my.cnf

  [mysqld]

  datadir=/var/lib/mysql

  socket=/var/lib/mysql/mysql.sock

  # Default to using old password format for compatibility with mysql 3.x

  # clients (those using the mysqlclient10 compatibility package).

  # old_passwords=1

  table_cache = 300

  default-character-set = utf8

  log = /var/lib/mysqllog/mysql.loglog-bin = /var/lib/mysqllog/log-binlog-slow-queries ...

阅读全文…
如果导出大数据的数据库,则需要增加 --quick或--opt选项 ,不然默认是先全部读到内存再写入备份文件。
内存不是足够大的话就会出错了。对于大论坛需要先后台关闭论坛(不用关闭nginx)再备份,避免备份时候前台没有提示,不够友好,当然如果用脚步自动备份就关不了,基本在2点以后也无所谓。

案例:务必使用
--skip-lock-tables #对MYISAM有效
--default-character-set=gbk #表非默认字符集都需要这个参数,不然乱码
--opt #不然默认是先全部读到内存再写入备份文件

备份数据库:
mysqldump --skip-lock-tables --default-character-set=gbk --opt -uroot -p1234 db1 > /home/db1_back.sql
...

阅读全文…
MySQL 5.0升级到MySQL 5.1

通常情况下,升级到新版本不需要修改任何数据表。请检查MySQL发布事项中提到的升级需要注意的地方,如果发现不能直接升级的话,就先用 mysqldump 将数据导出来,然后再导回去。
如果担心升级失败,就先把旧版本的MySQL改个名字备份起来,以备所需。
同时,升级完之后可能还需要重新编译跟MySQL相关的程序,因为新版本的头文件和库文件可能有改变了。
如果升级后发生问题了,请先检查是否使用了旧的my.cnf配置文件,可以通过执行命令 "mysqld --print-defaults" 来打印出各种配置信息来确认。
升级的时候最好也升级类似Perl的 DBD::mysql 模块,同样,对PHP和Python而言也是一样。
2、从 MySQL 5.0 升级到 MySQL 5.1
从 5.0 升级到 5.1 ...

阅读全文…

MySQl之open_table与opened_table的区别讲解

[ 2010-12-10 16:02:38 | 作者: admin ]
好多人在调优Mysql的时候,总是对open_tables和opend_tables两个参数分别不清。
网上好多解释都是这样的:
open_tables:当前打开表的数量
opened_tables:当前已经打开表的数量

很简单的解释,可是这两句话看起来有点类似。
下面我来解释一下:
open_tables:是当前在缓存中打开表的数量。
opened_tables:是mysql自启动起,打开表的数量。

我们知道,假如没有缓存的话,那么mysql服务在每次执行一个语句的时候,都会先打开一个表。当sql语句执行完成后,则把这个表关掉。这就是opend_tables中的值。而,open_tables这个值,是mysql在使用缓存的情况下,存储在缓存中的表的个数。

 
我们可以这样做实验:执行flush tables;这个命令是mysql用来刷新缓存的。当这个命令执行后,我们会看到
...

阅读全文…

MySQL的my.cnf优化实例

[ 2010-12-10 10:57:42 | 作者: admin ]
MySQL的my.cnf优化实例
我从网上找到的,我刚看了一下,还算不错,发在这里,大家看看,最好有牛人补充完善
然后,再整理整理!
========================================
在Apache, PHP, MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的参数。
下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化;二是MySQL自身(my.cnf)的优化。
(1) 服务器硬件对MySQL性能的影响
a) 磁盘寻道能力(磁盘I/O),以目前高转速...

阅读全文…

mysql下的insert/replace into/update/delete

[ 2010-12-10 09:16:49 | 作者: admin ]
p.s. 容易弄错的是replace into,当主键存在时,它不是更新一部分字段,而是先删除再插入一条记录
MySQL中replace into有三种写法:
replace into table(col, ...) values(...)
replace into table(col, ...) select ...
replace into table set col=value, ...
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中。
1、如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
2、否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
...

阅读全文…
 INSERT语法 INSERT [LOW_PRIORITY |DELAYED| HIGH_PRIORITY] [IGNORE] [INTO]tbl_name[(col_name,...)] VALUES ({expr| DEFAULT},…),(…),…

  [ON DUPLICATE KEY updatecol_name=expr, ... ]

  或:

  INSERT [LOW_PRIORITY |DELAYED| HIGH_PRIORITY] [IGNORE]

  [INTO]tbl_name

  SETcol_name={expr| DEFAULT}, …

  [ON DUPLICATE KEY updatecol_name=expr, ... ]

  或:

  INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
...

阅读全文…