MySQLデータベースのマスタ・スレーブ同期のインストールと設定の概要

  MySQLのマスタースレーブの同期は非常に成熟したインフラである、利点は以下のとおりです。

  ①サーバーからクエリを実行することができ 、作業 のメインサーバーのストレスを軽減、(つまり、私たちは多くの場合、読み取り機能と言います)。

  ②プライマリサーバからのバックアップでは、バックアップサービス中のプライマリサーバへの影響を回避するために、

  プライマリサーバが問題がある場合は③、サーバから切り替えることができます。

  だから私は、多くの場合、プロジェクトの展開と実装では、このプログラムを使用しています。

  +? データベースの カタログや他の

  my.cnfの設定ファイル??な/etc/my.cnf

  MySQLデータベースの場所?? DATADIR =の/ var / libに/のMySQL

  masterデータベース:192.168.2.119

  データベースから:192.168.2.220

   OS :RHEL5.x 32ビット

  サーバーの種類:仮想マシン

   + Mysql5.0.77インストール:

  YUMの構成されたLinuxサービス①の後、yumは直接MySQLをすることができますインストール-y

  添付ファイル:マウントPHPの\ mysqlのインストールするコマンド:YUMのhttpdのPHPのMySQLのMySQLサーバのphp-mysqlのインストール-y

  MySQLを起動する②

  サービスが開始してmysqld(再起動|停止)

   まず、メインのライブラリを設定します

  図1は、my.cnfファイルは、プライマリ・データベースを変更し、主に異なるIDとlogbinを設定する(#これは、特定の環境に追従するために、使用huge.cnfの圧力)

  [ルート@ localhostのなど] #viな/etc/my.cnf

  #覚えてこの部分は、[m​​ysqldを]後ろに設定されている必要があり、またはノードから見つけることができない、各設定項目の意味は、文書自身に見出すことができます

[mysqldを】

log-bin=mysql-bin

server-id=1

binlog-ignore-db=information_schema

binlog-ignore-db=cluster

binlog-ignore-db=mysql

  2、启动主库生效

  [root@localhost etc]service mysqld restart

  3、登陆主库

  [root@localhost etc]mysql -u root -p

  4、赋予从库权限帐号,允许用户在主库上读取日志

  mysql> grant all privileges on *.* to '用户名'@'%' identified by '密码';

  5、检查创建是否成功

  select user,host from mysql.user;

  6、锁主库表

  mysql> flush tables with read lock; 7、显示主库信息

  记录File和Position,从库设置将会用到

mysql> show master status;

+------------------+----------+--------------+------------------+

| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 98 ? | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

# 说明,如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。

  8、另开一个终端登陆220,打包主库迁移数据(如果你使用的yum安装,有默认数据库并未做任何改动,则不需要进行拷贝)

  目的是为了保证两台服务器的mysql数据库一致,这里可以自行tar打包或者使用mysqldump命令备份恢复的方式进行。

   二、设置从库

  1、传输拿到主库包、解包

  # 登陆从库

  从上一步中备份的数据库恢复到220服务器节点上。

  2、在119节点上解锁主库表(对应第一点设置主库中第6步锁主库表的操作)

  mysql> unlock tables;

  3、在220节点上修改从库my.cnf(位置一样)

  # 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档

[mysqld]

log-bin=mysql-bin

server-id=2

binlog-ignore-db=information_schema

binlog-ignore-db=cluster

binlog-ignore-db=mysql

replicate-do-db=test

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

slave-net-timeout=60

master-host=192.168.2.119

master-user=root

master-password=pfingo

  4、在220节点上验证连接主库

  [root@localhost etc]mysql -h 192.168.2.119 -u 用户名 -p

  5、在220节点从库上设置同步

#设置连接MASTER MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position

#注意下面第二条命令语句中的master_log_file='mysql-bin.000001', master_log_pos=98;对应为前面在主库中执行的show master status;结果

mysql> slave stop;

mysql> change master to master_host='192.168.2.119',master_user='root',master_password='pfingo',master_log_file='mysql-bin.000001', master_log_pos=98;

mysql> slave start;

  6、启动从库服务

  mysql> slave start;

  7、进行测试

  在主库上的test库上建立名为myTest的表

mysql> CREATE TABLE `myTest` (

`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,

`username` VARCHAR( 20 ) NOT NULL ,

`password` CHAR( 32 ) NOT NULL ,

`last_update` DATETIME NOT NULL ,

`number` FLOAT( 10 ) NOT NULL ,

`content` TEXT NOT NULL ,

PRIMARY KEY ( `id` )

) ENGINE=MYISAM ;

  在从表中马上看到了效果,主从同步成功了;

  为了更进一步验证在从库上输入show slave status\G;

  mysql> show slave status\G;

  Slave_IO_Running: Yes(网络正常);

  Slave_SQL_Running: Yes(表结构正常)

  进一步验证了以上过程的正确性。



最新内容请见作者的GitHub页:http://qaseven.github.io/


おすすめ

転載: www.cnblogs.com/mynale/p/11018681.html