MySQLレプリケーションの準同期構築でSFTPによるPUTができない

このQ&Aのポイント
  • MySQL5.5でレプリケーション(準同期)を構築していますが、SFTPで/var/lib/mysql/に接続しPUTする作業ができません。
  • 現在のユーザー設定は、マスターサーバーとスレーブサーバーの両方でreplicaユーザーを使用していますが、機能限定のユーザーでPUTしたいと考えています。
  • PUT先のスレーブサーバーの/var/lib/mysql/の所有者はmysqlであり、mysqlユーザーでのPUTは可能です。しかし、レプリケーション専用のユーザーを作成して対応したいです。対応方法について教えてください。
回答を見る
  • ベストアンサー

SFTPで/var/lib/mysql/にPUT

MySQL5.5でレプリケーション(準同期)を構築しています。 http://it.sifr.me/mysql-semi-synchronous-replication/ 上記のサイトを参考に、マスターサーバー(192.168.100.101)からスレーブサーバー(192.168.100.105)にレプリケーションの予定です。 上記サイトをもとに構築していたのですが、レプリケーションの前の段階の 「SFTPで/var/lib/mysql/に接続、PUT」するという単純なことが出来ません。 下記のように192.168.100.101にあるSQLをスレーブサーバー192.168.100.105にSFTPで接続してPUTするという作業をしたころ Couldn't get handle: Permission denied になってしまっています。 [root@sv1 ~]# cd /var/lib/mysqll      //192.168.100.101のマスターサーバー上でcd [root@sv1 mysql]# sftp -oPort=22 replica@192.168.100.105 //スレーブに接続 Connecting to 192.168.100.105... replica@192.168.100.105's password: sftp> cd /var/lib/mysql      //192.168.100.105のスレーブサーバー上でcd sftp> put master-mysql-data.tar.gz   //192.168.100.105のスレーブサーバーにput Uploading master-mysql-data.tar.gz to /var/lib/mysql/master-mysql-data.tar.gz Couldn't get handle: Permission denied  //エラー sftp> 現在のユーザー設定は以下の通りです。 ユーザー名はいずれも replica で 192.168.100.101(マスター) ●linuxユーザー(ユーザー名 replica) ●mySQLユーザー(ユーザー名 replica)    ホスト192.168.100.105 スレーブレプリケーションの許可 192.168.100.105(スレーブ) ●linuxユーザー(ユーザー名 replica)(グループ mysql) ●mySQLユーザー(ユーザー名 replica)     ホスト192.168.100.101    スレーブレプリケーションの許可&クライアントレプリケーションの許可 と設定しています。 尚、PUT先の192.168.100.105 の/var/lib/mysql/の所有者はユーザー、グループともmysqlです。 mysqlユーザーで行えばput可能のでしょうが、どのサイトを見てもreplication専用ユーザーを作って対応することとなっており、安全上の面からも機能限定のユーザーでputしたく考えております。 対応方法についてご教授いただきたくお願いいたしします。

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>尚、PUT先の192.168.100.105 の/var/lib/mysql/の所有者はユーザー、グループともmysqlです。 >mysqlユーザーで行えばput可能のでしょうが、どのサイトを見てもreplication専用ユーザーを作って対応することとなっており、安全上の面からも機能限定のユーザーでputしたく考えております。 グループに書き込み権限がついていないだけ…とか言うことはありませんか? ティストリビューションが何かは不明ですが…。

tajix14
質問者

お礼

ご指摘の通りでした。 言われてみればその通りなのですが、トラブル中の頭では思いもよりませんでした。 ありがとうございました。

関連するQ&A

  • MySQLパフォーマンスについて

    MySQLでレプリケーションを行っております。 例えば マスター1台で スレーブ10台のサーバへレプリケーションをおこなっているとした場合 1.マスターへの負荷はスレーブ1台の時よりかなり増大するものでしょうか?  それとも気にする程でもない程度でしょうか? 2.レプリケーション遅延はスレーブ1台の時より大きくなりますでしょうか? もちろんいろんな状況によって変化するとは思いますが 一般的に考えて、もしくは私見でもよいのでお教え頂けますでしょうか。 MySQLバージョン:5.5.15 1日のページビュー:500万PV 同時アクセス数:200 select と insert,update の比率は同じくらいです。

    • ベストアンサー
    • MySQL
  • /usr/lib及び/libのリストアが失敗します

    tarコマンドにてディレクトリのバックアップ及びリストアを実施しています。 対象ディレクトリは以下です。 /bin,/sbin,/opt,/home,/etc,/var,/usr,/lib バックアップは下記コマンドにて問題なく実施できました。 (例として「/bin」の場合とします) # tar cvf /var/tmp/bin.tar ./bin 下記手順でリストアを実施しています。 # tar xvf /var/tmp/bin.tar # cd /var/tmp # /bin/cp -rpf bin/ / /usr及び/libのりストアを実施すると、急に画面が落ちてしまい 起動すら出来なくなってしまいます。 シングルユーザモードでなんとか見れるくらいです。 /usr以下のどのディレクトリが怪しいのか一つずつ調べた結果、 /usr/libが原因でした。 ライブラリ関連はリストアしたらいけないのでしょうか。 パッケージのリストアもしたいので、/usr/lib以下のリストアも必須なのですが・ ・・。 環境はRHEL5です。 よろしくお願い致します。

  • MySQLで複数のマスターの受けは可能でしょうか?

    最近MySQLをちょこちょこ触っているものですが、ふとした疑問にぶち当たりました。 もし、ご存じの方がいらっしゃいましたらご教授頂けないでしょうか? 質問 AというMySQLマスターServer BというMySQLスレーブServer があり、お互いにレプリケーションの関係を築いております。 ここに、突然 全く別のデータが入っている CというMySQLマスターServerの受け皿としてBをスレーブに出来ますでしょうか? つまり、B(MySQLスレーブServer)はAのスレーブでもあり、Cのスレーブでもある。 ということが出来るのでしょうか? (出来る、出来ないで結構です、やり方などのご教授はいりません。) MySQLにお詳しい方いらっしゃいましたらアドバイス頂けないでしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • CentOS(Linux)上の/var/lib/mysqlディレクトリ

    CentOS(Linux)上の/var/lib/mysqlディレクトリ上(MySQLデフォルトのデータディレクトリ)へ、 CSVファイル「Test.csv」(文字コードWindows-31J(CP932))を、 アップロードしてから、 以下のJavaプログラム(エラー処理内容だけは省略していますが・・・)  ↓ final Runtime rt = Runtime.getRuntime(); final Process pr = rt.exec("chown mysql:mysql" + " " + "/var/lib/mysql/Test.csv"); try { pr.waitFor(); final int intRet = pr.exitValue(); if (intRet != 0) { return; } } catch (final Exception ex2) { return; } を実行して、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させて、 その後、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 なぜか、 以下のエラーが発生します。  ↓ java.sql.SQLException: Access denied for user 'SYSASA'@'localhost' (using password: YES) なお、別のやり方として以下のテストも試してみました。  ↓ 上記のJavaプログラムを実行せずに、 アップロード後のファイルを直接、 CentOS上から手作業(プロパティ)で、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させてから、 その後、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 問題無く、インポート出来ています。 そこで、 ご質問内容なのですが、 Javaプログラムを利用しているか、していないか だけの違いで、 なぜか、上記致しましたJavaプログラムで、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させてから、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 上記のエラーになります。 何がエラーの原因なのでしょうか? もしお気づきの点などございましたら、 ぜひ教えてください。 お世話になります。 以上、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • /var/lib/mysql以下に生成される db-bin.xxxファイルって?

    Turbolinux 10 Serverを使っています。 mysqlのバージョンは4.0.20です。 インストール後しばらく使っていたのですが、 /var/lib/mysql以下に  databasename-bin.001  databasename-bin.002  databasename-bin.003  ・  ・  ・ というファイルが多数生成されました。 これらのファイルのサイズは1GByte近くある大きなものもあり、 無視できなくなりました。 これらのファイルは何なのでしょうか? また、このファイルはrmで削除してしまっていいのでしょうか? 何かツールを使うと自動的に削除されるのでしょうか? 初歩的な質問なのかもしれませんが、ご教授お願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLがインストールできません(LINUX)

    http://oshiete1.goo.ne.jp/qa4849004.html この質問の続きです。初歩的な段階の質問で申し訳ありません。色々試したのですが、どこが問題なのか特定できません。現在試している手順を見て頂き、正しく動作する方法を教えて下さると、本当に助かります。 示してくださる手順は最初からでもかまいません。どんな方法でもいいから、LINUXにMySQLをインストールしたいと思っています。 MySQLをFedora10にインストールしようとしています。 (1)mysql-5.1.33-linux ~ .tar.gz (2)mysql-5.1.33.tar.gz を tar で解凍しましたが、(1)はconfigure というファイルがなく、 (2)は scripitの下に mysql_install_db がなく(mysql_insatall_db.pl や~.shはある)、またdataというディレクトリができません。 また、 ./configure --with-charset=ujis \ --prefix=/usr/local \ --localstatedir=/sql/data など、HPに紹介されている幾つかの configure を行いましたが、 no acceptable C compiler found in $PATH と怒られます。 そこで、解凍したフォルダ内に gcc-c++ -ssa 3.5ssa ~ rpm やgcc4.1-c++4.1 ~prm 、また compat-gcc=c++-7.3-2.96~prmなどをいれて、yum や rpm -ihv などで解凍を試みたのですが、 エラー:依存性の欠如 とでます。 現在、tar.gz を解凍してできたフォルダのなかで、 bin/mysqld_safe と実行してみると、 mysqld_safe logging to 'var/log/mysqld.log' Starting mysqld daemon with databases from /var/lib/mysql mysqld from pid file /var/run/mysqld/mysqld.pid ended と返され、MySQLサーバが実行できません。 使用しているOSはできるFedora10(インプレスジャパン)の付属DVDです。

    • ベストアンサー
    • MySQL
  • MySqlの初期設定 RedhatLinux9

    RedhatLinux9 で アパッチ、PHP, Mysql、FTPをインストール時に選択してインストール(Webサーバーに必要な最小限)したのですが、MySqlがどうしてもうまく動いてくれません。 Mysqlに関して、 いろいろGoogleやらOKWEBなどで調べたのですが、うまく動かないようです。 /var/lib/mysql で設定されているようで、 sqlをスタートさせると下記のようなメッセージがでます。 [root@www mysql]# /usr/bin/safe_mysqld & [1] 2214 [root@www mysql]# Starting mysqld daemon with databases from /var/lib/mysql 031023 13:54:59 mysqld ended [1]+ Done /usr/bin/safe_mysqld となり、 次にmysqlのユーザーを作ろうとするとエラーがでてしまします。 mysql_install_db --user=mysql と入力すると 下記のようなエラーがでます。 /usr/bin/mysqladmin -u root password '*****' /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists! /var/lib/mysql/mysql.sock は、存在しているのですが、、、、、 sqlに関しては、 mod_auth_mysql-1.11-12 php-mysql-4.2.2-17 mysql-3.23.54a-11 mysql-server-3.23.54a-11 が、インストールされているようです。 どうしても解決できないのです。 よろしくお願いします。

  • Fedora10 への MySQL 5 のインストールについて

    Fedora10をフルインストールしたPCをサーバにみたてて、MySQL5.1.33-linux-i686-glibc23.tar.gz をインストールしようとしています。 root権限で(root@localhost) groupadd mysql useradd -g mysql mysql を行い、 /usr/localにて gunzip < mysql-VERSION.tar.gz | tar xvf - mysql-VERSION.tar.gz を行いました。 その他のディレクトリ usr/local/mysql や home/usr などでもtarコマンドを使って、解凍してみましたが、MySQL versionディレクトリを作成しました。 しかし、 cd mysql-VERSION をしたり、あるいは解凍をした位置などで、 ./configure --with-charset=ujis \ --prefix=/usr/local \ --localstatedir=/sql/data とうってみますが、必ず -bash: ./configure: そのようなファイルやディレクトリはありません と怒られてしまいます。 どうやったらconfigure をかけられるのでしょうか。 ご回答をお待ちしています。

  • cpanでdbd::mysqlをインストール

    ご回答お願いします。perlの初心者です。cpan(cpan.pmのことです)をつかってdbd::mysqlをインストールしようとしました。cpanの初期設定はおそらくできていると思います。 $cpan と打つと cpan[1]> と表示されるので cpan[1]> install dbd::mysql とすると、なにやらインストールがはじまります。しかしインストールの最後の方に Going to write /Users/name/.cpan/Metadata Warning: Cannot install dbd::mysql, don't know what it is. Try the command i /dbd::mysql/ となっています。そこでインストールされているか確認するため、 cpan[2]> m /dbd::mysql/ とすると、 Bundle Bundle::DBD::mysql (CAPTTOFU/DBD-mysql-4.018.tar.gz) Module Class::DBI::ClassGenerator::DBD::mysql (DCANTRELL/Class-DBI-ClassGenerator-1.03.tar.gz) Module DBD::mysql (CAPTTOFU/DBD-mysql-4.018.tar.gz) Module DBD::mysql::AutoTypes (GRISHACE/DBD-mysql-AutoTypes-1.0.tar.gz) Module DBD::mysql::GetInfo (CAPTTOFU/DBD-mysql-4.018.tar.gz) Module DBD::mysql::Install (JWIED/Msql-Mysql-modules-1.2219.tar.gz) Module DBD::mysql::SimpleMySQL (LINNIN/DBD-mysql-SimpleMySQL-0.5.tar.gz) Module DBD::mysqlPP (OYAMA/DBD-mysqlPP-0.04.tar.gz) Module DBIx::DBSchema::DBD::mysql (IVAN/DBIx-DBSchema-0.39.tar.gz) Module DBIx::Skinny::DBD::mysql (NEKOKAK/DBIx-Skinny-0.0733.tar.gz) Module DBIx::TextIndex::DBD::mysql (DKOCH/DBIx-TextIndex-0.28.tar.gz) Module Data::Model::Driver::DBI::DBD::mysql (YAPPO/Data-Model-0.00007.tar.gz) Module Data::ObjectDriver::Driver::DBD::mysql (SIXAPART/Data-ObjectDriver-0.08.tar.gz) Module Module::Build::DBD::mysql (DWHEELER/Module-Build-DB-0.10.tar.gz) Module Qudo::Driver::DBI::DBD::mysql (MASARTZ/Qudo-Driver-DBI-0.03.tar.gz) 15 items found が表示されます。しかしbashにもどり$perl -mdbd::mysql -e ' ' で確認すると Can't locate DBD/mysql.pm in @INCになってしまいます。 どのようにすればDBIでDBD:mysqlを使えるようになりますか。 教えてください。よろしくお願いします。

  • MySQLが起動しない

    このテーマの質問はいくつもあるのですが、解決に結びつくものがなく困っています。 もともと正常に動いていたのですが、再インストールしたところ起動しなくなりました。 再インストールは「yum -y install mysql-server」で行いました。 いろいろと試してはいるのですがうまくいきません。 どなたかお分かりの方がいらっしゃいましたら、ご教授いただけますでしょうか。 よろしくお願いします。 --------------------------  エラーログ -------------------------- 110709 16:46:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 110709 16:46:38 [Note] Plugin 'InnoDB' is disabled. 110709 16:46:38 [Note] Plugin 'FEDERATED' is disabled. 110709 16:46:38 [ERROR] Unknown/unsupported storage engine: InnoDB 110709 16:46:38 [ERROR] Aborting 110709 16:46:38 [Note] /usr/libexec/mysqld: Shutdown complete 110709 16:46:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended --------------------------  my.cnf -------------------------- [mysqld] skip-innodb max_connections=30 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock bind-address=127.0.0.1 # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 [mysql.server] user=mysql sort_buffer=512 net_buffer_length=8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid --------------------------  php.ini (一部抜粋) -------------------------- mysql.default_socket = mysql.default_host = mysql.default_user = mysqli.default_port = 3306 --------------------------  サーバー環境 -------------------------- OS: Red Hat Enterprise Linux ES release 4 MySQL: MySQL: 5.5.9-2 [ファイル構成] /var/run/mysqld/mysqld.pid /var/lib/mysql/mysql.sock ※上記のファイルは所定のディレクトリだけでなく、サーバー上に存在しません。 /var/lib/mysql  -mysql/  -performance_schema/  -test/