データベース一覧の表示について

このQ&Aのポイント
  • データベース一覧の表示方法として、mysqlshowを使用すると指定したデータベースの名前がフォーマットされて表示されます。しかし、データベース名だけを表示させる方法はありませんか。
  • データベース一覧の表示方法について、mysqlshowを使用するとデータベースの名前がフォーマットされて表示されますが、実際には名前だけを表示させる方法はありますか。
  • データベース一覧の表示において、mysqlshowを使用するとデータベースの名前がフォーマットされて表示されますが、データベース名だけを抽出する方法はありますか。
回答を見る
  • ベストアンサー

データベース一覧の表示について

データベース一覧の表示について mysqlshow すると +--------------------+ | Databases | +--------------------+ | information_schema | | mysql | +--------------------+ のようにフォーマットされて表示されるのですが、これを information_schema mysql のようにデータベース名だけを表示させることは できないでしょうか。 スクリプトで不要な部分をカットする、DB アクセスプログラム をくみデータベース名を抽出するなど、方法はいろいろあると 思いますが、手軽な方法を探しています。

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

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

  • ベストアンサー
回答No.2

MySQLのバージョンを、MySQL 5.0、MySQL 5.1といった番号までは最低限、明記してください。 mysqlshow でなく mysql コマンドであれば、列名の非表示、区切りの「-」の非表示といったオプションの指定が可能です。 <コマンド指定例> mysql -u ユーザ名 pパスワード -D INFORMATION_SCHEMA -N -s -e "SELECT SCHEMA_NAME AS `Database` FROM INFORMATION_SCHEMA.SCHEMATA" mysqlコマンドのパラメタの詳細は、以下を参照。 http://dev.mysql.com/doc/refman/5.1/ja/mysql-command-options.html 簡単に説明すると、 -e : 実行するSQL -N : 列名を非表示 -s : ヘッダの区切りの「-」を非表示、表示位置合わせなど といった感じです。 データベース名の参照先のinformation_schemaの詳細は、以下を参照。 http://dev.mysql.com/doc/refman/5.1/ja/schemata-table.html

t-okura
質問者

お礼

ありがとうございます。期待した結果が得られました。 mysqlshow を使うのではなく、SQL 文をコマンドラインで 与える方法があるというのに頭がまわりませんでした。 たいへん参考になりました。

その他の回答 (1)

  • smileeeen
  • ベストアンサー率70% (21/30)
回答No.1

どのような意図があるのか分かりませんが、 プログラムなどを組まずに手軽に、というのであれば | information_schema | | mysql | の部分をコピーしてエクセルに貼り付け、 「テキスト ファイル ウィザード」を使用して 「スペースによって右または左に~」を選択すれば データベース名のみが特定の列に入ります。 もしくはメモ帳などに貼り付けて、 スペースと「|」を空文字に置換してもいいかもしれませんね。

t-okura
質問者

お礼

回答ありがとうございます。 取得したデータベース名を使い mysqldump で個々のデータベースを バックアップするスクリプトを組み立てようとしています。 UNIX 系のツールには、パイプを使いツールを連携させるため 出力データには余分なかざりをつけないものが多いので、mysqlshow でも、見出し等をつけないようにするオプションがあるのではないか と思い質問しました。

関連するQ&A

  • MySQLのデータファイルの位置について

    MySQLでテーブル、データベースを作成したのですが、 OS上から作成したテーブル・データベースが保存されているファイル(データファイル?) が見つけられません。 テーブルにデータをインサートしてコミットして、 セレクトを行ってデータは反映されていることは確認しています。 OSはWindows 7 MySQLのバージョンは5.5です。 user_dbというデータベースを作成し、 show databasesを行った結果、 information_schema mysql performance_schema test user_db が表示されることから、データベースuser_dbは正常に作られていると思います、 user_dbに対して、インサートは可能で、一度データベースを停止して、 再起動後、インサートしたデータがみれています。 しかし、インストールフォルダのMy.iniのdatadirで指定されているフォルダには mysql performance_schema のフォルダしかない状態です。(ここにuser_dbフォルダが作成されると思うのですが) どこにデータが保存されているのでしょうか?

    • ベストアンサー
    • MySQL
  • SQLサーバのデータベース名表示について

    SQLサーバ初心者です。 わからないことがあり、ご存知の方いらっしゃいましたらご教示ください。 SQLサーバ2008 を使用しています。 SQLサーバのデータベース名の一覧を取得する方法として、 sys.databasesをselectしたり、sp_databasesを使用してDB名を取得できることは確認できたのですが、 master/msdbなどのシステムデータベース以外の自分で作成したユーザーデータベースのみリストする方法があればご教示いただけないでしょうか?

  • データベース改名

    MySQL 5.0.x でデータベース db_with_old_name を db_with_new_name という名へ変更しようとした結果です: mysql> RENAME DATABASE db_with_old_name TO db_with_new_name; エラ 1064 (42000): ご使用の SQL 構文中にエラがあります; ご使用の MySQL サーバ バージョンに該当するマニュアルで、1 行目の「DATABASE db_old TO db_new」付近で使用すべき正しい構文を調べてください このデータベースに対し全権を持ったユーザでログインしていますし、「DATABASE」を「SCHEMA」にしたり省略したり、データベース名に括弧をつけたり、いろいろやりましたが、すべて同じエラとなります。 ありえない入力などのアホな間違いは 10 年ほど前には卒業したと信じているのでこんな短い文でそれはないと思うのですが、そもそも MySQL 5.0.x でこの構文は使えないのでしょうか。

  • ユーザにインフォメーション スキーマを表示させたくない

    データベース「database1」作成と同時に、それをいじる権限だけ与えたユーザ「user1」を作成しました。 user1 でログインすると、データベース「information_schema」も表示されてしまいます。 information_schema を表示させない方法というより、database1 のみを表示させる方法を教えてください。

  • 一覧表示

    DBなどを読んで、一覧表示する場合、 (その一覧表示は、表示のみ。そのなかから データなどは抽出しない。あくまで表示に使うだけ) TextAreaタグしかないですか? どういうふうに作られていますか?

    • ベストアンサー
    • HTML
  • SQLインジェクション時の最小値、最大値以外の取得

    ascii(substring((select min(TABLE_NAME) from information_schema.tables where TABLE_SCHEMA != 'mysql' AND TABLE_SCHEMA != 'information_schema'),2,1))>100; ↑MySQLの場合です。 前回ここで疑問に答えていただいて、このようにすることで、tablesというテーブルから、データベースinformation_schemaとmysql以外のデータベースにあるテーブルを取得できるというのはわかったのですが、上のような記述だとmin(TABLE_NAME)にあるとおり、TABLE_NAMEで並べたときの最小のものしか取得できないんです。。。 min(TABLE_NAME)のminをmaxに変えることで最大のものは取得できますが、その2つ以外のテーブル名を取得する記述(例えば2番目を取得するなど)はあるのでしょうか? データベースの種類はMySQLでなくても良いです。 連続の質問になるのですがよろしくお願いします。。。

  • MySQLの挙動が変に・・・

    CentOS5.3を使用し、PHPのバージョンを4系から5.3へバージョンアップしたらMySQLの挙動が変になりました。 これまでは、 # mysql -u -p [enter]でパスワードを要求され、パスワード入力後MySQLにログインできていて、 mysql>show databases;を実行するとこれまでのデータベース一覧が当然出てきました。 バージョンアップ後、 # mysql -u -p [enter]でパスワード要求もなくログインされ、 mysql>show databases;を実行すると、 +--------------------+ | Database +--------------------+ | information_schema | test +--------------------+ のみ表示されます。 どうしてこうなったのかわかりません。 PHPのバージョンアップは以下のとおりしました。 以前のPHPバージョンを削除 yum remove php php-* 5.3のインストール # yum install php53 php53-mbstring php53-mysql なお、WordPressをインストールした際にも以前は通常通りインストールできたのですが、 5.3にしてからは 「データベース接続確立エラー」と表示されDBへ接続できないようで困っています。 以前質問させていただいた時に 「MySqlの設定が初期化されたかMySqlも更新されたかです。」とご教授をいただいき、 # ls /etc/my.cnf* を実行したところ、すでに /etc/my.cnf my.cnfが存在しております。 当該サーバーに以前より現存していたDBを使ったサイトの閲覧も可能なので、どうなっているのかわかりません。 緊急性を要し、再度ご質問させていただきました。 大変申し訳ございませんが、ご教授よろしくお願いします。

  • PHP5.3へバージョンアップしたら・・・

    PHPのバージョンを4系から5.3へバージョンアップしたらMySQLの挙動が変になりました。 これまでは、 #mysql -u -p [enter]でパスワードを要求され、パスワード入力後MySQLにログインできていて、 mysql>show databases;を実行するとこれまでのデータベース一覧が当然出てきました。 バージョンアップ後、 #mysql -u -p [enter]でパスワード要求もなくログインされ、 mysql>show databases;を実行すると、 +--------------------+ | Database +--------------------+ | information_schema | test +--------------------+ のみ表示されます。 どうしてこうなったのかわかりません。 PHPのバージョンアップは以下のとおりしました。 以前のバージョンを削除 yum remove php php-* 5.3のインストール # yum install php53 php53-mbstring php53-mysql バージョンは # php -v PHP 5.3.3 (cli) (built: Oct 1 2013 18:32:37) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 上記のようにバージョンアップされています。 なお、WordPressをインストールした際にも以前は通常通りインストールできたのですが、 5.3にしてからは 「データベース接続確立エラー」と表示されDBへ接続できないようで困っています。 わかる方どうかご教示お願いいたします。

    • 締切済み
    • PHP
  • PHP5.3へバージョンアップしたら・・・

    PHPのバージョンを4系から5.3へバージョンアップしたらMySQLの挙動が変になりました。 これまでは、 # mysql -u -p [enter]でパスワードを要求され、パスワード入力後MySQLにログインできていて、 mysql>show databases;を実行するとこれまでのデータベース一覧が当然出てきました。 バージョンアップ後、 # mysql -u -p [enter]でパスワード要求もなくログインされ、 mysql>show databases;を実行すると、 +--------------------+ | Database +--------------------+ | information_schema | test +--------------------+ のみ表示されます。 どうしてこうなったのかわかりません。 PHPのバージョンアップは以下のとおりしました。 以前のPHPバージョンを削除 yum remove php php-* 5.3のインストール # yum install php53 php53-mbstring php53-mysql バージョンは # php -v PHP 5.3.3 (cli) (built: Oct 1 2013 18:32:37) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 上記のようにバージョンアップされています。 なお、WordPressをインストールした際にも以前は通常通りインストールできたのですが、 5.3にしてからは 「データベース接続確立エラー」と表示されDBへ接続できないようで困っています。 ちなみにOSはCentOS5.3です。 現在大変困っております。 助けてください。。。

  • データベースを移動したい

    前にMySQLをインストールしデータベースを作っていたのですが、事情によりMySQLを再インストールしました。 それで、前に作ったデータベースを新しい方へ移動したのですけど、 select文で中身を見ようとしたら、 「ERROR 1033: Incorrect information in file: 'テーブル名.frm'」と出てうまくできませんでした。 表示させるためにはどうすればいいのでしょうか?

    • ベストアンサー
    • MySQL