Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29336315
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Mysql/postgreSQL

2009-03-18 12:39:19

关闭、重启、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  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的文件里。




阅读(1917) | 评论(0) | 转发(0) |
0

上一篇:Python转码问题

下一篇:好的网站

给主人留下些什么吧!~~