免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1420 | 回复: 0
打印 上一主题 下一主题

MySQL常用配置文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-18 12:39 |只看该作者 |倒序浏览
关闭、重启、MySQL操作方法:
/etc/init.d/mysql   start|stop|restart|reload|force-reload
/etc/my.cnf文件
默认是/etc/my.cnf文件。它包含6条命令,并且这6条命令被组织在3个配置段中。这些配置段与Samba配置文件中的配置段相似,并且
含有功能组名称和相关的命令。本文将逐行的说明这个文件的默认版本。如果用户进行了任何修改,将需要确保MySQL启动脚本(即
/etc/rc.d/init.d/mysqld)中的命令一致。
[mysqld]
在这个配置段之内,将会看到与MySQL守护进程相关的命令。
datadir=/var/lib/mysql
MySQL服务器把数据库存储在由datadir变量所定义的目录中。
Socket=/var/lib/mysql/mysql.sock
MySQL套接字把数据库程序局部的或通过网络连接到MySQL客户。
提示:MySQL被配置成使用InnoDB存储器引擎。如果用户在自己的系统上还没有一个InnoDB数据库,将需要给[mysqld]配置段添加skip-innodb语句。
[mysql.server]
在这个配置段之内,将会看到MySQL服务器守护进程有关的命令。这个配置段的较早期版本被命名为[mysql_server]。如果使用
MySQL4.X或MySQL4.X以上版本,将必须把这个配置段标题改成[mysql_server]。当启动MySQL服务时,它使用这个配置段中的
选项。
user=mysql
与MySQL服务相关联的标准用户名是mysql。它应该是/etc/passwd文件的一部分;如果在这个文件中没有发现它,用户可能还没有安装Red Hat Enterprise Linux mysql-server RPM程序包。
basedir=/var/lib
这表示MySQL数据库的顶级目录。它充当MySQL系统上的一个根目录;这个数据库中的其它目录都是相对于这个目录。
[safe_mysqld]
这个配置段包含MySQL启动脚本所引用的命令。如果使用MySQL4.X或4.X以上版本,必须把这个配置段改成[mysqld_safe]。
err-log=/var/log/mysqld.log
这是MySQL所关联的错误被发送到的这个文件。如果使用MySQL4.X或4.X以上版本,必须使用log-error指令替换这条命令。
pid-file=/var/run/mysqld/mysqld.pid
最后,pid-file指令定义MySQL服务器在运作期间的进程标识符(PID)。如果MySQL服务器当前没有运行,这个文件应该不存在。
提示:用户可以配置与用户特定相关的MySQL配置文件;为此,只需给指定用户主目录中的.my.cnf隐含文件添加所选的配置命令即可。
Mysql主从配置:
一,同步的原理:mysql主服务器运行进程,将表的写操作计入binlog,从服务器运行两个进程,其一,从主服务器取回数据binlog,另一个,运行其中的sql,使从服务器更新。
二,设置:(主机使用Freebsd ,mysql 4.1.20-standard-log ,从机使用windows xp 5.0.18-nt ,原则上要求主机从机系统,数据库系统版本一致,如果不一致,从机的数据库版本要高于主机)
1.主服务器:
   (1)授权。GRANT REPLICATION SLAVE ON *.* TO
[email=user@host]user@host[/email]
IDENTIFIED BY "password"
        意义:给从机授复制权限。如果需要LOAD TABLE FROM MASTER 和LOAD DATA FROM MASTER 需要授select、reload 和super 权限给此用户。
        测试:在从机上用mysql -uuser -hhost -ppassword连接主机。  
   (2)关闭主控服务器(/usr/local/mysql/bin/mysql.server stop视系统不同而不同),记录binlog的filename和position。
        (2-1)FLUSH TABLE WITH READ LOCK
        (2-2)SHOW MASTER STATUS记录file栏和position栏
        意义:记录binlog的filename和position。FLUSH TABLE WITH READ
LOCK是因为mysql为了减少读写磁盘,会把部分binlog暂存到内存,到一定空间阀值一次性写入磁盘,这样做就是要求把这些binlog强制写到
磁盘。这步说实话有点问题,线上系统你敢关么?这个探讨一下,我试配的时候是这么做的。
      
意外处理:如果(2-2)出现空白,表明没有启用binlog。启用的方法是在my.cnf(*nix)或my.ini(win)中找到[mysqld]
加入log-bin=filename,或log-bin,后者采用机器名作为binlog的name。
   (3)创建主服务器的快照。
        有两种方法:
       (3-1)进入mysql的数据文件夹,打包所有的数据文件夹,如果有INNODB的文件夹,还要把ibdata文件也打包。同时copy到各从机上。
        (3-2) 使用mysqldump -uuser -ppassword --master-data 库名
表名>mastersql2slave.sql生成sql文件,如果需要所有库使用mysqldump -uuser -ppassword
--master-data --all-databases>mastersql2slave.sql   
        意义:相当于给从机形成一个同步的起点。   
   (4)修改配置文件。
    修改my.cnf(*nix)或my.ini(win)在[mysqld]加入server-id=1(保证此ID主从各服务器间唯一)
   (5)启动主服务器(/usr/local/mysql/bin/mysql.server start视系统不同而不同)
2.从属服务器
    (1)如果加入过同步设置的机器使用新配置先使用RESET SLAVE , 如果从数据库已有一些其他数据,最好把他们移到其他备份目录。把刚才的快照恢复之。*nix下注意权限和属主。
    (2)修改配置文件my.cnf(*nix)或my.ini(win)
         (2-1)找到[mysqld]加入server-id=2(保证此ID主从各服务器间唯一)
         (2-2)如果只想做某一个库的主从同步,可以在[mysqld]段写上replicate-do-db=库名。
     (3)运行master转向语句。
          (3-1)如果同步正在进行,运行stop slave停止同步。
  
       (3-2)按实际情况运行CHANGE MASTER TO MASTER_HOST =
'host_name',MASTER_USER = 'user_name', MASTER_PASSWORD =
'password', MASTER_PORT = port_num, MASTER_CONNECT_RETRY =
count,MASTER_LOG_FILE = 'master_log_name',MASTER_LOG_POS =
master_log_pos,RELAY_LOG_FILE = 'relay_log_name',RELAY_LOG_POS =
relay_log_pos; 全部是可选项。遗漏则不变。MASTER_LOG_FILE
,MASTER_LOG_POS使用主服务器(2-2)步骤记下的数据。
     (4)开启同步机制。start slave。
          检查:
         (4-1)从机上运行show slave status\G;
         (4-2)如果:Slave_IO_Running: Yes并且Slave_SQL_Running: Yes则配置成功。如果不能同步,则有可能同步库名有问题。
         (4-3)如果:Slave_IO_Running: No。则可能的原因是网络问题,binglog设置错误,host设置错误等等。
         (4-4)如果:Slave_SQL_Running: No。则可能的原因是sql语句执行报错等等,有可能是主从数据库结构有问题。
          (4-5) 如遇(4-3)或(4-4)问题,可在解决后运行start slave io_thread  或 start slave sql_thread 启动进程。直至(4-2)情况。
          (4-6)此时在从机的mysql数据文件目录下应该有形如:
  
        080910 19:39:41 [Note] Slave I/O thread: connected to master
'lgy@192.168.1.222:3306',  replication started in log
'c402sx-bin.000122' at position 42738307
           080910
19:39:41 [Note] Slave SQL thread initialized, starting replication in
log 'c402sx-bin.000122' at position 23384516, relay log
'.\liuguanyu-relay-bin.000002' position: 23631758
           的记录记录如默认叫hostname.err的文件里。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_1867130.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP