本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7573672
建立时间:2006年5月29日




[MySQL]MySQL Replication Status
软件技术

lhwork 发表于 2007/1/8 10:27:18

MySQL 設好 Replication 後, 常會用以下指令來觀察 Master, Slave status, 但是秀出來的資訊代表的意思到底是如何呢?? show master status show slave status 以下是 Master 機器上, show master status 出來的 欄位 和 說明: Master_Host: dbm1.domain_name Master_User: repl Master_Port: 3306 Connect_retry: 60 , 這個 mysql server 重啟動到現在已經 connect 幾次了(自己 restart 會歸零) Master_Log_File: dbm1-bin.009 , 目前 Master 上已經寫到第幾個了 Read_Master_Log_Pos: 991863990 , Slave讀到 Master 這個 log file 的


阅读全文(1682) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]mysql服务器kernel参数设置建议
软件技术

lhwork 发表于 2007/1/8 10:26:52

一直以来,mysql服务器特别是忙碌的server,如果相关参数设置不当,都会出现如下错误: printk: 1719 messages suppressed.
ip_conntrack: table full, dropping packet. 只所以会出现这样的错误,是因为:ip_conntrack_max这个值设置的较小引起的,但是也不能设置的太大,因为这个会占用相关的内存! 那如何来解决这个问题?只有改大这个值: 如果是kernel-2.6的,那么请执行下面的语句即可:
echo “65536″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max 如果是kernel-2.4的,那么请执行下面语句:
echo “65536″ > /proc/sys/net/ipv4/ip_conntrack_max 以上的做法是自己习惯的做法,当然也可以把相关指令写在 /etc/sysctl.con


阅读全文(2665) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]使用mysql的master/slave的一个小心得
软件技术

lhwork 发表于 2007/1/8 10:07:28

曾在DELL PE6850(1台,master)上使用mysql-4.0.26,内存是8G,max-connections=7000 后面有3台slave(PE2850),作为只读的用途! 结果发现:3台slave中有2台的数据是不统一的,差异非常大,有的甚至是有几万条,另外一台也不是时时同步,吓我一跳,分析了一下原因: 最有可能就是因为常出现:too many connections导致的
所以一定要使用m/s架构,那么必须在db前做一层非常健壮的cache才行,不然,维护太麻烦了:$

阅读全文(2512) | 回复(1) | 编辑 | 精华 | 删除
 


[MySQL]mysql的show status 解释
软件技术

lhwork 发表于 2007/1/8 10:03:00

Aborted_clients 由於客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。 Aborted_connects 嘗試已經失敗的MySQL伺服器的連接的次數。

阅读全文(4047) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]几个跟热备有关的mysql命令
软件技术

lhwork 发表于 2007/1/8 10:02:29

:(需要在mysql命令行界面或query): stop slave  #停止同步
start slave  #开始同步,从日志终止的位置开始更新。
SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。
RESET MASTER #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER
RESET SLAVE  #从机运行,清除日志同步位置标志,并重新生成master.info
虽然重新生成了master.info,但是并不起用,最好,将从机的mysql进程重启一下,
LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个

阅读全文(1565) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]MySQL查询优化(查询优化器)
软件技术

lhwork 发表于 2006/12/31 14:17:00

了解一些优化器的知识,作为对如何建立索引的补充,对我们是有好处的,因为这样你才能更好地利用自己所建立的索引。某些编写查询的方法实际上让索引不起作用,在一般情况下你应该避免这种情形的发生。这一讲中将讨论MySQL查询优化器,我将试图找到执行具有最高效率查询的方法。

  当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快。这一部分将介绍查询优化器是如何工作的。如果你想知道MySQL采用的优化手段,可以查看MySQL参考手册。

  当然,MySQL查询优化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查询,那么无论数据表有多大,MySQL执行它的速度都会非常快:

SELECT * FROM

阅读全文(2084) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]MySQL用户管理
软件技术

lhwork 发表于 2006/12/28 15:05:34

 MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了 mysql数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。CREATE和REVOKE语句影响4个表:授权表 内容 user 能连接服务器的用户以及他们拥有的任何全局权限
db 数据库级权限
tables_priv 表级权限
columns_priv 列级权限   还有第5个授权表(host),但它不受GRANT和REVOKE的影响。   当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管理权限或适用于所有数据库的权限),这 些也记录在user表中。如

阅读全文(3181) | 回复(0) | 编辑 | 精华 | 删除
 


[MySQL]一些 Mysql 的优化经验
软件技术

lhwork 发表于 2006/12/28 15:03:30

从数据库结构做起                         字段类型的定义时遵循以下规则:               

  • 阅读全文(2235) | 回复(0) | 编辑 | 精华 | 删除
     


    [MySQL]MySql数据库备份mysqldump参数选项
    软件技术

    lhwork 发表于 2006/12/28 15:02:06

    实用程序,为备份或为把数据转移到另外的SQL服务器上倾倒一个数据库或许多数据库。倾倒将包含 创建表或充实表的SQL语句。 

    shell> mysqldump [OPTIONS] database [tables]

    如果你不给定任何表,整个数据库将被倾倒。 

    通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。 

    注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在倾倒结果前装载整个结果集到内存中,如果你正在倾倒一个大的数据库,这将可能是一个问题。 

    mysqldump支持下列选项: 

    --add-locks 
    在每个表倾倒之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。

    阅读全文(2030) | 回复(0) | 编辑 | 精华 | 删除
     


    [MySQL]MySQL索引经验之浅见
    软件技术

    lhwork 发表于 2006/12/28 14:58:29

    在数据库表中,使用索引可以大大提高查询速度。

    假如我们创建了一个testIndex表:
    CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);

    我们随机向里面插入了1000条记录,其中有一条
        i_testID    vc_Name
          555    erquan
         
    在查找vc_Name="erquan"的记录
    SELECT * FROM testIndex WHERE vc_Name='erquan';
    时,如果在vc_Name上已经建立了索引,MySql无须任何扫描,即准确可找到该记录!相反,MySql会扫描所有记录,即

    阅读全文(1490) | 回复(0) | 编辑 | 精华 | 删除
     


    « 1 2 3 4 5 6 7 8 »



    站点首页 | 联系我们 | 博客注册 | 博客登陆

    Sponsored By W3CHINA
    W3CHINA Blog 0.8 Processed in 0.109 second(s), page refreshed 144758615 times.
    《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
    苏ICP备05006046号