• ベストアンサー

my.cnfファイルを編集しようとするとアクセスが拒否されました」と表示されます。

ローカルディスク(C)直下のmy.cnfファイルを編集することができません。 ファイルを編集し保存しようとすると「アクセスが拒否されました」と表示されます。 紙谷歌寿彦「はじめての人のためのかんたんPHP + MySQL入門」P18の環境設定を行っているところです。 my.cnfファイルをテキストエディタで default-character-set=latin1 のlatin1をsjisに編集する、という箇所です。 いろいろと検索してみたのですが原因が判明しないため、ご教示いただければ嬉しいです。 使用OSはvistaです。 秀丸、EmEditor共に編集ができません。 また以下の点は確認済みです。 ・ユーザーはadministerです。 ・my.cnfファイルのプロパティ、セキュリティタブにて「拒否」となっているユーザーはいません。 ひどくくだらない質問にも思えるのですが、PHPの勉強の出だしから煮詰まってしまっております・・ よろしくお願いいたします。

  • PHP
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5640)
回答No.3

WindowsXPだとMySQLが起動していても、メモ帳にて、このファイルを編集、保存できますね。 Vistaだとだめなのが不思議ですが、それなら、セーフモードで起動するのはどうでしょうか。 これなら、編集ロックされなくなると思いますので、書き換える事ができると思います。 セーフモードでの起動は、パソコンの電源を入れてから、{F8}キーを連打していれば、それらしいメニュー画面がでますので、やってみてください。 あるいは。 Vistaのセキュリティでロックされているファイルかも知れませんので、ユーザーアカウント制御(UAC)の設定で、これを解除すればできるようになるかも知れません。 コントロールパネルのユーザーアカウントから、「ユーザーアカウント制御の有効化または無効化」をクリックして、「~役立たせる」のチェックボックスのチェックをはずして「OK」ボタンを押してください。 再起動の必要があるかと思います。

yasailifes
質問者

お礼

ご回答ありがとうございます。 セーフモードにて試みたところ、無事書き換えができました! おかげさまでPHPの修行を始めることができます。 ありがとうございました!

その他の回答 (2)

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.2

スタート → ファイル名を指定して実行 → services.msc 一覧からMySQLを探し出して停止させて下さい。

yasailifes
質問者

お礼

ご回答ありがとうございます。 services.mscを探してみたのですがMySQLがありませんでした。

  • chie65535
  • ベストアンサー率43% (8516/19359)
回答No.1

MySQLのサービスが起動している最中は、my.cnfはMySQLのサービスルーチンが「ファイルを独占」している為、書き替える事は出来ません(独占と言っても、読み込むのは許可されているので、メモ帖などで開くのだけは可能で、上書き保存しようとするとエラーになります) my.cnfを編集する場合はMySQLのサービスを全て停止してMySQLを終了して下さい。 当然、my.cnfを編集し終わったらMySQLを再起動し、サービスをスタートさせる必要があります。 「何かのプログラムがオープンしたまま使用中のファイルは、勝手に削除や変更が出来ない」のは常識なので、これを機会に覚えておくと良いでしょう。

yasailifes
質問者

補足

ご回答ありがとうございました。 いったん再起動させた後、ブラウザやphpdev5?など他のアプリケーションをすべて閉じた状態で試みてみましたが編集できないようです。 私の理解が不足していて大変恐縮ですが、「MySQLのサービスを全て停止」する方法を教えていただけないでしょうか・・ よろしくお願いいたします。

関連するQ&A

  • my.cnf と my.ini の違い

    my.cnf と my.ini の違いがよく分かりません。 これらは同じものでしょうか? 最近、XAMPPを使用しており、以前に単独で入れたMySQLが不要になったのでアンインストールしたところ、XAMPPのMySQLのコマンドプロンプトからの操作が文字化けしてしまい、 ・my.cnf の [mysql] default-character-set=sjis ・chcp 65001 ・SET NAMES sjis 等を試して、丸一日格闘しましたが、解決せず、しかたなく再度単独でMySQLを入れて、パスを通し、my.ini に default-character-set=sjis 指定してやると文字化けが直りました。 問題は解決したのですが、使用していないMySQLが入っているので、気持ち悪いです。 my.ini は my.cnf より強いのですか? XAMPP内には、my.cnf しかないですが、これを、my.ini に変更することはできますか?

  • XAMPP MySQL my.cnfの設定について

    mySQLに日本語のデータを使いたい者です。 XAMPPを利用しています。 コマンドプロンプトからINSERT文などで日本語のデータを入れたいのですが、????になります。 mySQLのバージョンは5.1.30です。 XAMPPは1.7.0 my.cnfをメモ帖でひらき、[default-character-set]と検索してみましたが 何もHITしなかったので、次のようにmy.cnfに書き加えました。 [client] default-character-set=sjis [mysqld] default-character-set=sjis character-set-server = sjis collation-server = utf8_general_ci [mysql] default-character-set=sjis sjisになっているところは一度utf8で試してみたのですが ????ではなく文字化けになったのでsjisにしてみました。 何か設定に不備があるのでしょうか?DOS上でset names 'sjis' などを試してみましたが駄目でした。

    • ベストアンサー
    • MySQL
  • sjisを使いたい!

    Linux(RedHat9)上のMySQL(ver 4.1.7)でsjisを使いたいのに使えなくて困っています。MySQLは標準でlatin1に指定されているので、日本語を用いたいため、sjisに変えようと思いました。よって、my.cnfの[mysqld]、[mysqldump]、[mysql]それぞれにdefault character set=sjisと記述したのですが、そうするとMySQLが起動できなくなりました。何故かと思い、上記の記述をやめて幾つか調べました。とりあえずmysql> status;では Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 そしてmysql> show character set;をしてみると、 Charsetの中に、ujisもsjisも入っていませんでした。よって、このMySQLがサポートしていないsjisを設定ファイルに記述しても起動できなくなる訳です。 他のどのPCのMySQLにもsjisなどは当たり前のように入って いるのに・・。 mysql> set character set sjis;や mysql> set names sjis;とやっても、以下のエラー。 ERROR 1115 (42000): Unknown character set: 'sjis' このMySQLの状態を調べるため、mysql> show variables ike 'char%';とすると、 Variable_name | Value character_set_client | latin1 character_set_connection | latin1 character_set_database | latin1 character_set_results | latin1 character_set_server | latin1 character_set_system | utf8 character_sets_dir | /usr/local/mysql/share/mysql/charsets/ となっています。このような状況で、どうやったらこの MySQLはsjisを使えることができるようになるでしょうか。 どなたかお気づきの点でもあればアドバイスよろしくお願いします。m(_ _)m

    • ベストアンサー
    • MySQL
  • ODBC接続で全角文字が文字化け

    MySQL⇒MS-ACCESSのODBC接続で文字化けが発生してます。 ■MySQL 5.0.27 ■MyODBC 3.51.19 ■MS-ACCESS 2000 (Windows2000) ○my.cnfの設定 [mysqld] skip-character-set-client-handshake [mysqld_safe] skip-character-set-client-handshake [ODBC] default-character-set=sjis [client] default-character-set=sjis ○status Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 ▽試したこと ・Initial Statement に set names 'sjis' を設定 ・Character Set sjis、ujis、latin1 それぞれを指定 半角文字は大丈夫ですが、全角文字になると「??????????」と表示されています。 MySQL+PHPでは問題なく使えます。 解決方法分かる方アドバイスお願い致します。

    • ベストアンサー
    • MySQL
  • mysql.sockとmy.cnfの設定

    FreeBSD7.2 release mysql 5 php 5 apache 2.2 でサーバを立てようとしています。 phpの文字化けを解決しようといろいろ調べていて、 「skip-character-set-handshake」 をmy.cnfの[mysqld]の部分に追加すれば良いらしいと考えました。 しかし、追加してmysqlを再起動すると /tmp/mysql.sockが無くなってしまい、mysqlにつながらないというエラーが出ます。 「skip-character-set-handshake」をコメントアウトした状態で mysqlを再起動すると、/tmp/mysql.sockは存在していて、 mysqlにはつながりますが、文字化けします。 「skip-character-set-handshake」は使わなくてもいいなら、その他の方法で文字化け解消を、また、 「skip-character-set-handshake」を使わなければ行けない場合は /tmp/my.sockの問題を解決しないといけません。 お詳しい方からの情報をお待ちしております。

    • ベストアンサー
    • MySQL
  • mysqlコマンドでcharsetを指定したい

    my.cnfは下記の設定で、 LinuxのSSHでmysqlコマンドを使う時だけ、ujis(EUC) で表示したいのですがどうすれば良いでしょうか? ■/etc/my.cnf [client] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis mysqlコマンドではオプションが指定できないようで・・

  • Mysqlで外部から接続できない。

    RedHat7.3 mysql 4.1.11を使っています。ちなみにPHPは4.3.11です。 さて、この環境にソースでインストールしまして、グローバル権限のユーザーを作成しました。 かねやんMySqladminで接続していました。 default-character-setがsjisではないため日本語が入らないのでmy.cnfに default-character-set=sjis を追加し 停止して # /usr/local/mysql/bin/mysqladmin shutdown 再起動 # /usr/local/mysql/bin/mysqld_safe --user=mysql & しました。 すると外部からかねやんでコネクト(コネクト失敗)できなくなりました。 my.cnfのdefault-character-set=sjis を削除して再起動しても同じでしたのでコレが原因だとは考えにくいとおもうのですが、再起動したことによってなにか接続できなくなるようなことは考えられますが? ちなみにlocalhost(サーバーマシン上)からは接続できます。またそのサーバー内に置いてあるphpからmysqlにもコネクトできます。 大変困っております。 どなたかご教授いただきますようお願いします。

  • MySQLで文字コードをUTF-8にセットする。

    OSはLinuxのCentOS7です。 端末のコマンド  show variables like "chara%"; から抜粋です。 | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | このlatin1をUTF-8にセットしたいのですが、 /etc/my.cnfの中身をどのように書けばいいですか。

    • ベストアンサー
    • MySQL
  • さくらインターネットのMySQL の文字セット

    さくらでMySQLを使いたいのですが、文字コードをUTF-8からSJISにしたいのです。 無知識で初め、検索やログを頼りにチャレンジしたのですがいまいち設定がわかりません。 my.cnfに [mysqld] default-character-set=sjis skip-character-set-client-handshake と、書けばいい、などの情報もあったのですが、そもそも「my.cnf」がどこに存在するのかすら分かりません。どなたか教えていただけませんでしょうか。 MySQL 5.1

    • ベストアンサー
    • MySQL
  • 「アクセスは拒否されました」と出てファイルが開けな

    windows7です。 あるフォルダ内のファイルがすべて「アクセスは拒否されました」というエラーが出てファイルが開けなくなりました。 そこでネットで調べてみて、以下の方法で、所有者の権限や、アクセス権の設定も行いました。 ---------------------------------------------------------------- 1. 管理者権限のあるユーザーでログオンします 2. アクセスしたいフォルダーを右クリックし、[プロパティ]を選択します 3. [セキュリティ]タブをクリックし、[詳細設定]ボタンをクリックします 4. [編集]ボタンをクリックします 5. [所有者]タブをクリックし、一覧から新しい所有者(現在ログオンしているユーザーかAdministratorsでいいかと思います)を選択し、「サブコンテナとオブジェクトの所有権を置き換える」にチェックして[OK]します 6. もし「内容を読み取るのに必要なアクセス許可がありません。...」というメッセージが表示されたら[はい]をクリックします 7. [OK]をクリックします 所有権が取得できれば、アクセス権の設定行います。 1. 管理者権限のあるユーザーでログオンします 2. エクスプローラーで目的のフォルダーを右クリックし[プロパティ]を選択します 3. [セキュリティ]タブで、自分のユーザーやAdministratorsの行で、「フルコントロール」にチェックが付いていることを確認します ---------------------------------------------------------------- しかし、フォルダには、所有者権限やアクセス権は持つことができたのですが、そのフォルダ内のファイルはすべて相変わらず、「アクセスは拒否されました」と出て、開けません。 じゃあ、もうそのファイル自体のプロパティを上にあるやり方で所有者の権限をつけようと思って、やってみました。 ところが、なぜかファイルの方は、所有者の権限の変更ができません。 プロパティ→セキュリティタブ→所有者→編集 から、アドミニスター権限のを選んでOKを押しても、現在の所有者のところが「現在の所有者を表示できません」となっており、何故か所有者を変更できないのです。 なぜなんでしょうか。どうしたらいいでしょうか?

専門家に質問してみよう