• 締切済み

ズブの素人です。mysqlについて教えてください。

ズブの素人です。 わけあって素人である私がssh接続でサーバーをいじらねばならず、 データを直接書くことの恐さだけは知っているため、非常にビクビクしています。 教えてくれる人もおらず、大変困っております; どうしてこんなことになってしまったか、それが一番の問題なんですが、 直下の問題に対応するため、何卒知恵を頂戴いただけますと幸いです。 本当に素人なので稚拙な質問になってしまうと思いますが、 何卒教えていただけますと幸いです。 (mysqlに触るのも、SSHログインするのも人生初です) ■やりたいこと 『_utf8』というデータベースの中に『blog』のテーブルがあり、その中にブログがたくさん入っています。 ブログには作成者の項目が紐づいており、また、公開/非公開を決めるフラグ(0で公開、1で非公開)がついています。 今とある作成者(仮にtanaka)が書いたブログの中で、 2013/1/1までに書かれたブログを非公開にしたい(非公開フラグを1にしたい)です。 ■自力で調べたところまで 自分で調べた結果が下記のmysqlなのですが、 フラグを1にする、UPDATEの文章と 範囲を指定する、SELECTの文章の紐付けが 全く自身がありません。。。 ========= UPDATE `blogdb_utf8`.`blog` SET `blog_trash` = '1' SELECT * FROM `blog` WHERE `user_id` LIKE 'tanaka' AND `send_time` <= '2013-01-01 00:00:00' ========= 正直絶対どこか間違っているという 逆の自信だけございます。 ■さらに御聞きしたいこと teratermからsshログインというものを人生初しました。 ログインしたあと、ここからどこにcdして、上記の実行文を入れたら良いかがわかりません。。。 おそらく非常に初心者な質問をしているのだろうと自覚しておりますが、 何卒よろしく御願い致します

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

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>ちなみに(1)のmysqlにログインというのは、 ああ、なるほどズブの・・・ ユーザー名とパスワードなどログイン情報わかっているのでしょうか? mysqlのコンソールにログインするには mysql -u ユーザー名 -p として、パスワードを入力します。 もしログイン情報がわかっていないなら無理なのであきらめてください ちなみに管理者がセキュリティを少しでもきにしているなら sshでログインするときのユーザー名とパスワードとは異なるものが 設定されていると思います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

構文だけの話をすれば以下のような感じ? (1)mysqlにログイン (2)use `blogdb_utf8`[エンター] で、データベースにはいり (3)以下SQL文を実行 UPDATE `blog` SET `blog_trash` = '1' WHERE `user_id`='tanaka' AND `send_time` < '2013-01-01 00:00:00' \g[エンター] (4)作業後「\q[エンター]」でぬける ちなみに、send_timeのデータ型がdatetimeであるのが前提、date型の場合 若干範囲指定の仕方がかわってきます。 また「2013/1/1までに書かれたブログ」の言葉の定義が、 「12/12/31 23:59:59までに書かれたもの」の場合の処理です。 もし1/1の終日であれば `send_time` <= '2013-01-01 23:59:59' みたいなことになると思います。 ※危険を顧みずやっている状況は伝わってきます。 ただ、不慣れな方が見よう見まねでやってデータを消してしまったり 整合性が取れなくなってしまう場合もあるので、十分注意の上、 ノークレームで対応ください

ookihiroyuki
質問者

お礼

大変ありがとうございます。 ちなみに(1)のmysqlにログインというのは、 cd mysql であっておりますでしょうか。

関連するQ&A

  • mysql、phpを使ってデータがあるときだけ表示させたい

    mysql、phpを使ってデータがあるときだけ表示させたい 初歩的な質問で恐縮です。 mysql、phpを使ってデータがあるときだけ、それを表示させたいと思っています。 ------------------------------------------------------------------- データベース ↓↓ name        blog      クリリン    http://www.111.jp  ヤムチャ    http://www.222.jp ブルマ ------------------------------------------------------------------- ------------------------------------------------------------------- 表示させたいこと ↓↓ クリリン  クリリン公式ブログ(リンク) ヤムチャ  ヤムチャ公式ブログ(リンク) ブルマ ------------------------------------------------------------------- ------------------------------------------------------------------- 実際にソース組んでみたやつ (何も出てこなかった。。クリリンの場合) $blog_sql = "select blog from ****"; $res = mysql_query($blog_sql); $blog = mysql_result($res,0); if ($blog > 0 ) { echo "<p><a href=\"$blog\">クリリン公式ブログ</a></p>"; } ------------------------------------------------------------------- です。 ソースの部分は若干はしょってありますが、 ifを使わないでやるとちゃんと表示されるので、細かいところは問題ないはずです。 ただ、ifを使わないとブルマの項目にも「ブルマ公式ブログ」とリンクURLが入っていない状態で出てしまうので、ブログURLが入っていないものを表示させたくない、というものです。 何かご不明な点などあればおっしゃってください! よろしくお願いします!

    • ベストアンサー
    • MySQL
  • MySQL4.0 UTF-8 での文字化け

    こんにちは MySQL4.0 & PHP4.3 でHTMLは文字コードUTF-8で記述しています。 MySQL4.0の文字コード設定はレンタルサーバーのため不明ですが、 phpMyAdminで、utf-8にてデータを入力しました。 select文でMySQLのデータを拾ってくると文字化けはおきないのですが PHP経由でPOSTされた値を使ってinsertやupdateをかけると文字化けしてしまいます。phpMyAdmin上でも文字化けしていますが、phpMyAdminをEUC-JPにすると、入力した文字が文字化けせずに表示されます。 (が、すでに入っているデータは文字化けします、、、、) 入力画面は metaでUTF-8宣言をしており、ブラウザ(IE)上でエンコードを確認するとUnicode(UTF-8)になっています。4.1みたいにset names を指定するとうまくいくかな?と思ったのですが、やっぱり4.0なので結果は変わらず、でした。PHPのスクリプトそのものは、UTF-8で記述しているのですが、、、、 どういった項目をみなおせばいいのでしょうか?

    • ベストアンサー
    • MySQL
  • 新規ユーザ作成・ログインできない・・・

    こんにちは。サーバーはレンタルサーバーでSSHでログインしています。 mysqlでAデータベースに足してALL権限をもったユーザーuserを作りました。 しかしこのユーザーでmysqlにログインをしようとすると ERROR 1045: Access denied for user: 'user@localhost' (Using password: YES) と出てログインできません。 ユーザー名とパスワードはワードパットに先に記載してそれを見て何度も見直してユーザーを作成したので、間違えてはいないと思います。 前に違うユーザーを作ったときもログインできなかたのですが、これはやっぱりユーザー名かパスワードが間違えているのでしょうか??? 後、ついでで申し訳ないのですが、エクセルのファイルをタグ形式のテキストで書き出してmysqlにインポートしたのですが、sshでmysqlでSELECTするとちゃんと表示されるのですが、PHPからmysqlにSELECTすると日本語が文字化けをしてしまいます・・・。 何が原因なのかわからないおですが、何か考えられる原因はありますか? すみませんが、ご教授をよろしくお願いします。

    • ベストアンサー
    • MySQL
  • mysqlのデータベースの内容をphpでだしたいのですが。。。

    初歩的な質問で、自分なりにネットで調べたり、DBに詳しい友人にも聞いたのですが、どうしてもできなかったため質問させていただきます。 【やりたいこと】 データベースに中の文字を変数として表示させたい 【結果】 「Resource id #3」とでる 【データベースの中身】(テーブル名 genre) genreid   genre 1     アクション 2      RPG 3     アドベンチャー ・       ・ ・       ・ 【作ったソース】 <?php mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $genre_name_sql = "select * from genre where genreid = 1"; $genre_name = mysql_query($genre_name_sql); echo $genre_name; ?> 私としてはこれで 「アクション」 と出したいのですが、何かが悪いのか出ません。 お忙しいところ恐縮ですが、 よろしくお願い致します。 (情報が足りない場合はおっしゃってください。。。)

    • ベストアンサー
    • MySQL
  • PHPでMySQLのデータのインポート&SELECT結果のダウンロード

    こんにちは。いつもここにはお世話になっています。 ご質問が何点かあって申し訳ないのですが、簡単に作ろうとしているスクリプトを説明すると一日一回夜中にCSVかTEXT形式でデータがアップされます。それをMysqlの指定したテーブルにインポートします。その際前日のデータは全て削除します。作られたCSVファイルも削除したいんです。翌日にそのインポートされたデータを検索し必要に応じて検索されたデータをダウンロードできるようにしたいんです。ダウンロードするファイルはCSVでファイル名はテーブル名に検索した時の時間をつけた名前。これを全てPHPで行いたいんです・・・。 現在検索とSSHでログインしてのMysqlにインポートはできました。ダウンロードはまだ挑戦していないのですが、まずファイルを作ることとPHPでのデータのインポートができるのかわかりません。 質問なのですが、 1.分かりにくいのですが、上記のようなことはPHPで可能でしょうか? 2.データのインポートはPHPではどのようにしたらいいのでしょうか? 3.テーブル内のデータの削除はDELETEを使えば可能なのはわかりましたが、指定したフォルダ内のファイルを削除する方法はありますか? 4.SELECTで検索したデータが画面に表示されダウンロードできるようにファイルを作るのに $sql = "SELECT * FROM テーブル名 WHERE フィールド = \"条件\" "; $sql .= "INTO OUTFILE \"/home/パス/テキスト.CSV(or txt)\""; $res = mysql_query($sql); とスクリプトを記述しましたが出来ませんでした。 SShでmysqlにログインをして mysql> SELECT * FROM テーブル名 WHERE フィールド = '条件' -> INTO OUTFILE '/home/パス/テキスト名.txt'; とするとできたのですが、単純にこれをSELECT等と同じようにしたらダメなのでしょうか? 質問が多く申し訳ないのですが、ご教授をよろしくお願いします。

    • ベストアンサー
    • PHP
  • wordpressがMySQLに日本語データを格納する際の文字コード

    初めまして、satsukimaと申します。 現在他のブログからの引越し作業を行うべく、wordpressのインストールを終えました。 そして別のブログサイトからのテキストデータをMySQLに流し込もうとしています。 ところが日本語の部分にのみ文字化けが発生してしまいます。 wordpressではMySQLに日本語データを格納する際、どのような文字コードを使っているのでしょうか? 以下の5点を試しました。 1.utf8の端末でMySQLのCLI(mysql client)から"insert into"コマンドを使ってデータを追加しましたが、CLIのselect文とブラウザの両方で確認したところ日本語部分で文字化けが発生します。 2.ブラウザから通常通りに管理画面より日本語の入力を行うと文字化けせずに正常にブラウザに表示されます。 3.しかし正常にブラウザに表示されるデータをCLIのselect文にて確認すると文字化けが発生します。CLI端末の文字コードをutf8、euc、shift-jis、iso-2022-jpで試しましたが、やはり「?????」といったような文字列が表示され、文字化けします。 4.MySQL Query Browserからselect文を実行すると、ブラウザ上で正しく表示されているデータは正常に表示されます。 5.自分で書いたPHPスクリプトでselectを実行しブラウザから表示させると、文字化けします。ブラウザの文字コードをutf8、euc、shift-jis、iso-2022-jpで試しましたが、文字化けします。 どなたかヒントでも頂けないでしょうか。 ぜひ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • MySQLの日本語文字化け対策

    Mysqlでの日本語文字化け対策がうまくいかなくて困っています。 いくつもの参考ページを検索で探し、実行してみたのですが、どうにもうまくいきません。 insert into tbl values('あああ');のように、cmdに打っている時点では日本語は表示できています。 しかしselectで呼び出すと、'?f?u???'といった表記に化けてしまいます。 phpMyAdminでの表記も同様に化けます。 下記に環境と施した対策を記しますので、原因がわかる方のアドバイスをお待ちしております。 window7 64bit Xampp1.8.0 Apache 2.4.2 MySQL 5.5.25a PHP 5.4.4 phpMyAdmin 3.5.2 参考記事 http://blog.livedoor.jp/ryo511-web/archives/4915440.html cmd上でshow variables like "char%"でキャラクタセットを確認したところ character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_results utf8 character_set_server utf8 character_set_system utf8 と、表示上は意図したとおり、utf-8になっているようです。

  • limit offset はupdate文には使用できないでしょうか?

    MySQL5.1で、500万件あるテーブル a に対し、 100万件ずつ5種類のフラグを付けようと思います。 update a set flg = 1 limit 1000000; まではうまくいったのですが、 update a set flg = 2 limit 1000000,1000000; はSyntaxエラーとなりました。 select で一旦範囲指定し、キーを取得してから UPDATEをかける方法しかないでしょうか?

  • 素人主婦のブログ

    素人主婦のブログ ある特定の趣味を持つ、素人(有名人ではないという意味です。)の女性のブログで、 よく友だちとか、ママ友のコメントが寄せられ、内輪で盛り上がってる風景あるじゃないですか。 そのコメントも付き合いとか、社交辞令で、そのブログにアップされた写真と主張を讃える風。 そんな中、検索から訪問に至った男が世辞のひとつもコメントすると、ブログ主はちょっと返しはくれるものの、明らかに「おめえ場違いなんだよ。」的に返事も少なくなり、 レギュラー陣も遠のきになります。 (著しく一般常識に欠けるコメントした訳でもないのに。) 無言で「お引取り願いませんか?」的対応になります。 はい。そこで。 Q1.ブログを公開している以上、どんな輩にも同等の対応をすべきではないか? Q2.公に公開している以上、批判や粘着性のある来客を覚悟すべきではないか? Q3.1と2を背負えなければ、ブログなど最初から運営するべきではないのでは? ご意見、お願いします。      

  • MySQLのクエリーについての質問です。

    MySQLのクエリーについての質問です。 PHP4.2 MySQL4.xxを使ってる素人です・・・ 会員管理システムを構築して新規会員紹介の欄に以下のクエリーで情報をDBから引っ張ってました。 select * from member order by entry_date desc limit0, 10 entry_date は登録した日時です。 新しく登録された情報は10件まで表示されるようにしていました。 最近クライアントから「登録の新しい人に加えて、最近更新した人も表示させて欲しい。」と 言われました。 会員情報は編集できるようになっていた編集した際update_dateというフィールドに 時間が保存されます。 新規の時間と変更された時間を全て含めて新しい時間順に10件表示するにはどのようなクエリー書いたらいいでしょうか? select * from member order by (entry_date and update_date) desc limit0, 10 とかありえますか・・・? それか常にupdate_dateの新しい順に並べるようにして 新規登録した際にはentry_date と update_date の両方に同じデータを書き込むしかないでしょうか・・・? 何とかクエリー的に解決したいところです・・・ どうかお知恵をかしてください! よろしくお願いします。

    • ベストアンサー
    • MySQL