【MySQL】下らねぇ質問はID出して書き込みやがれ 2 >>935 俺もそんなに詳しくはないけど、
MySQL(や、その他GPLが適用されたプログラム)に含まれる
ソースコードそのものを取り込んで(改変して)いなければGPLは適用されない。
WEBアプリケーションを外部からアクセス可能にするだけでは
「再頒布」に当たらない(GPLなソフトウェアからの出力、と看做されたと思う)ので
GPLv2の再頒布にかかる規定(ソースコードの公開etc.)に従う必要はない。
ただ、客先への納品は再頒布だから、
・GPLが適用される ⇒ 客先へのソースコード公開が必要
・GPLが適用されない ⇒ 客先との契約次第
になる。いずれも客先への公開の問題で、世間一般に公開する必要はないはず。
>>935 「MySQLの派生物じゃない」部分だけ納品するのなら当然GPLに従う必要はない。
938 :
NAME IS NULL :2012/09/30(日) 12:05:15.66 ID:SqWyzZVW
初心者の質問です。 以下のような連想配列があります。 $_SESSION["login"]=array( "name" => $row["name"], "ID" => $row["ID"] ); これの$row["ID"]1つだけを取り出したいとき、 どのように指定したらいいですか? $user_ID に代入するとして教えてください。
939 :
NAME IS NULL :2012/09/30(日) 12:06:38.06 ID:SqWyzZVW
間違えました…ここmysqlの質問板でした。 上の質問はスルーしてください。
>>936 , 937
さんきゅ。
>> 937
つーことは、MySQLのインストール作業をこっちでやらなければOKという解釈でもいいのか。
941 :
NAME IS NULL :2012/10/02(火) 14:36:06.88 ID:/3YxDOCL
CREATE TABLE students ( name CHAR(32) NOT NULL, PRIMARY KEY (name) ); というテーブルがあって、name の頭文字を基準にパーティショニングしたい場合、 このテーブルに pn INTEGER NOT NULL // パーティション番号 のようなフィールドを持たせ、 データを挿入する際は、アプリケーション側で name の頭文字を判別し、 パーティション番号と共に挿入するという方法は安易な考え過ぎますでしょうか? より精錬された一般的な方法があればご教授下さい。
rootで特定のデータベースに接続して、今現在どういうユーザーがそのデータベースに接続しているかって知る方法ありますか?
944 :
941 :2012/10/02(火) 20:22:21.86 ID:/3YxDOCL
>>942 パーティション関数に ASCII() を使えないということだけが問題だったので、
KEYパーティショニングで代用できそうです。ありがとうございました!
mysql 5.5.15 mysqldumpでバックアップする時に外部制約の関係上、テーブル単位でバックアップ しています。 それでテーブル以外のもの、ストアドプロシージャなどは mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt hogehoge --default-character-set=cp932 -u xxxx -p > G:\Data\MySQL\fff.sql としているんですけど、viewの定義とかはここには出てきていません。 viewの定義をバックアップする方法、教えてください。
>>947 --no-create-info外せば取れるよ。
>>948 ありがとうございます
テーブル定義と一緒にビューの定義も取れました。
950 :
NAME IS NULL :2012/10/10(水) 14:22:18.59 ID:dQ01q0rX
LIKEで使える記号って % 以外に何があったっけか
アンダースコア"_"とエスケープのための"\"
ODBC Connector 5.1.11だとプロシージャにOUTの引数を設定するとエラーになるけど、これはバグなのかな… 5.2.2にあげたら起きなくなったんだけど。
954 :
NAME IS NULL :2012/10/13(土) 19:36:00.68 ID:VrFqSmlP
csvを標準入力からloadしたいんだけど、可能? ファイルから入れる方法はありましたが、直接入れられる方が素敵です。 できなかったらcsvをinsert文に加工して入れようと思ってます。 mysql5.1
955 :
NAME IS NULL :2012/10/14(日) 17:50:15.48 ID:SkZKtE+u
mysql-binってレプリケーションを利用していなかったら削除していいんですか? それともMySQLがクラッシュした時にここからリカバリしてるんでしょうか?
956 :
NAME IS NULL :2012/10/14(日) 21:07:11.70 ID:ZQIxLy7/
自然結合っていうのが具体的によく分からない。 RSの自然結合って例えばどういうことなのですか・
957 :
NAME IS NULL :2012/10/14(日) 21:55:21.92 ID:i3Of/uN+
質問です 取引IDとかユーザIDとかを重複しない乱数で設定したく、乱数の一覧をまず用意しようと思います で、5桁の16進数で乱数を作るとして乱数テーブルを3万行くらい作りたいんですがどうしたら良いでしょうか? id, is_used 10001, 0 10002, 0 … という形ですが、思いつくのはPHPで3万ループでinsertなんて方法だけです もっと効率のいいやり方ありますか?どうしたら良いでしょうか
>>957 insert select.
create table selectもあったっけ。
959 :
957 :2012/10/14(日) 22:41:15.41 ID:???
>>958 ご意見ありがとうございます、しかし知識不足のためかよくわかりません
それはデータをinsertするときやテーブルを作るときに既にあるテーブルからselectした値を
まとめて挿入する方法ですよね?
自分がしたいのは、
1)テーブルを作る
2)それに3万行のデータ(5桁の16進数で10001から3万)を入れる
という効率的な方法です
insert selectやcreate table selectするのに必要なselect元のテーブルが存在してない状況です
(自分の最初の説明がわかりづらかったならすみません)
自分のアイディアじゃPHPで10001〜40000を16進数に変更、それをinsertしか思いつかないので
もっと良い方法ないかなぁと。よろしくお願いします
>>954 不可能。
でもINSERTに加工しなおさなくても、LOAD DATA [LOCAL] INFILEで入れた方が速いよ。
>>955 要らなければ消しても良い。
前のフルバックアップから、データ消失直前までのデータをリカバリする、なんて時に必要。
ただし、このリカバリは手動で実施。
あとは更新系のDMLが全部記録されるから、監査目的とか。
my.cnfにexpire_logs_days = 14とかやると、14日以上前のは勝手に消える様になるよ。
>>956 t1 NATURAL JOIN t2は
t1 LEFT JOIN t2 ON (t1.c1 = t2.c1 AND t2.c1 IS NOT NULL) AND (t1.c2 = t2.c2 AND t2.c2 IS NOT NULL) AND ..
と同義だったはず。
c1,c2..は、t1とt2で持っている同じ名前のカラム全てが列挙されるかたち。
>>959 乱数はどこかに行ったの?
10001〜40000が既に登録されてるテーブルを作って、
UPDATE t1 SET c1 = HEX(c1);
が楽なんじゃない?
>>956 あ、ごめん、NATURAL JOINは結合に使用したカラムは一度しか現れないのがLEFT JOINと違う。
t1(c1,c2,c3) と t2(c1,c3,c4) なら、
SELECT * FROM t1 NATURAL JOIN t2;
は、
SELECT t1.c1,t1.c2,t1.c3,t2.c4 FROM t1 LEFT JOIN t2 ON (t1.c1 = t2.c1 AND t2.c1 IS NOT NULL) AND (t1.c3 = t2.c3 AND t2.c3 IS NOT NULL);
と同じになると思う。
962 :
NAME IS NULL :2012/10/15(月) 15:45:20.59 ID:ZaN3mqjF
先ほどからmysqlを学び始めました ストレージエンジンという設定があることがわかったのですが、 InnoDBっていうのとMyISAMというのがあります。 トランザクション機能をサポートしているとかしてないとかの違いがあるのですが、 このトランザクション機能というのがいまいちよくわかりません。 わかるように教えてください。
トランザクションは簡単に言えば複数のSQL操作で 途中キャンセルした場合に最初の操作時まで巻き戻せる機能。
964 :
NAME IS NULL :2012/10/15(月) 15:53:35.63 ID:ZaN3mqjF
>>963 なるほどありがとうございます。
それってコンソールから操作した場合の話ですよね?
PHPからコマンド実行した場合はどうなるんですか?その場合でもstart transactionとかcommitとか打たないとだめなんですか?
IPSて話題の森口見てこのスレの基地外おっさん思い出したよ もういなくなったみたいだね ああいう感じの人だったんだろうなぁ
966 :
NAME IS NULL :2012/10/15(月) 20:08:43.48 ID:ZaN3mqjF
ユーザ作成するときに、identified by 'test' って書くこの名前は何を意味していつ使うんですか?
>>964 php (mysqli,pdo_mysqlなど)からも同様。
ただし、使うライブラリによっては autocommit がデフォルトになってることもあると思う。
>>966 msyql に cli などでつないで、
help grant をみると幸せになれると思う。
968 :
NAME IS NULL :2012/10/15(月) 21:44:52.05 ID:ZaN3mqjF
>>967 なるほど
ありがとうございました!
今までずっとsqlite使ってたんですが、charとかtext型使ってたんで、
mysqlみたいにいちいち文字数やバイト数を指定するのに違和感を感じるんですが、
普通はちゃんと指定して作ってるんでしょうか?
それともmediumtextとかlongblobとか使ってるんでしょうか?
969 :
NAME IS NULL :2012/10/15(月) 21:49:17.29 ID:ZaN3mqjF
何度も質問で申し訳ないんですが、 identified by '文字列' ここの文字列の部分はパスワードってことでいいですか? でもたまにidentified by password '文字列' の構文もあったんですが何が違うんでしょうか? 後者の方はユーザ作るときだけとかでしょうか?
970 :
957 :2012/10/15(月) 22:43:18.44 ID:???
>>960 どうもありがとうございます、おかげで解決方法にたどり着きました
971 :
954 :2012/10/15(月) 22:59:52.78 ID:???
>> 960 ありがとうございます。cronでshellを動かすので遅くていいのですが、できないならしょうがないですね。 >> 959 ごめんなさい、複数行の生成ができるのはpostgresでした。 # select generate_series(1,3); generate_series ----------------- 1 2 3
>>969 identified by 'foo'
の場合は、password('foo') (パスワード暗号化関数を実行)した結果が登録される。
identified by password 'foo'
の場合は、foo がそのまま登録される。
mysql はユーザー認証の際に、password('foo') した結果と、
mysql.user の password カラムで内容が一致するか確認するので、
前者は password: foo でログインできるが、後者はできない。
identified by password はどっか別の DB から mysql.user をみてコピーする際や、
手元で selelect password('foo') とかして履歴にパスワードの生文字列を
残したくない場合に使うぐらいなのかな?
つまり foo をパスワードとしたユーザーを登録したい場合は、
identified by 'foo'
または
identified by password '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
となる。
ちなみに、password 関数は MySQL 4.1 あたりで変更されてるので注意
973 :
NAME IS NULL :2012/10/16(火) 07:40:45.08 ID:yFJZYlxr
>>972 そんな仕組みがあったとは・・
勉強になりました
ありがとうございました!
974 :
NAME IS NULL :2012/10/17(水) 16:53:18.86 ID:ZQKaKcpQ
MySQL5.5でutf8mb4を使いたいのですが、自作したPHPでpostして保存すると、 コマンドからもPHPMYADMINからも文字化けしてしまいます。 show variables like 'character_set%';をしても文字コードはあってると思うのですが。(以下がその結果です) character_set_client | utf8mb4 character_set_connection | utf8mb4 character_set_database | utf8mb4 character_set_filesystem | binary character_set_results | utf8mb4 character_set_server | utf8mb4 character_set_system | utf8 PHPでデータを読み込む場合は文字化けせず表示されています。 どうすれば解決するでしょうか?よろしくお願い致します。
975 :
NAME IS NULL :2012/10/17(水) 17:00:03.95 ID:tlC3fdR4
mysql5.5を使っています show column from table を実行した時に成功する時と失敗する時があります 最初は対象テーブルに行(データ)がない時はエラーになるのかと思ったのですが、 データがあっても失敗するものもあります どういう条件で失敗するのでしょうか?
976 :
974 :2012/10/17(水) 18:27:47.23 ID:???
再インストールで直りましたすみません。
>>975 失敗したことがないからわからないのだが、
どういうエラーが出るのか教えて欲しい。
# show columns from table_name の typo だよね?
あと、
desc[describe] table_name;
や
select * from information_schema.columns where table_schema=db_name and table_name=table_name;
だとどうなるか。
可能性としてはテーブルの情報がおかしいからテーブル作りなおしたほうがいいんじゃないかなと思う
978 :
975 :2012/10/17(水) 20:26:18.28 ID:tlC3fdR4
>>977 ありがとうございます、typoしてましたすみません
desc order するとshow columnsと同じエラーが出ます
#1064 - You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'order' at line 1
select * from information_schema.columns where table_schema=dekitala and table_name=order;
だと以下のエラーです
#1064 - You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'order LIMIT 0, 30' at line 1
対象のorderテーブルは以下のクエリで作りました。おかしいでしょうか
create table `order` (
id varchar(30) primary key not null,
sellerType varchar(20) not null,
sellerId int(11) not null,
buyerType varchar(20) not null,
buyerId int(11) not null,
is_used tinyint(1) not null,
seller_addressId int(11),
buyer_addressId int(11),
)
980 :
975 :2012/10/17(水) 21:22:11.51 ID:???
>>979 ありがとうございます
しかし、エラーです
>#1064 - You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'desk `order`' at line 1
なんでだろう。。
>>980 × 'desk `order`'
○ desc `order`;
982 :
975 :2012/10/17(水) 21:28:29.85 ID:???
あっ!うまく行きました! alter table `order` rename to `orderx`; してテーブル名を変えたところ、 desc `orderx`; が正常にテーブル構造を返しました! どういうことでしょうか? と、思って調べたら、テーブルに利用禁止な予約語だったみたいです お恥ずかしい、お騒がせしました。ありがとうございました
983 :
975 :2012/10/17(水) 21:37:48.16 ID:???
すみません、やはりもう少しお願いします deskの失敗するテーブル`color`を`colorx`に名前変更し、さらに`color`に名前変更したら 今度はdesk成功しました どういうことなんでしょうか? 流れは以下のようになります desc `color`; →失敗 >#1064 - You have an error in your SQL syntax; check the manual >that corresponds to your MySQL server version for the right syntax to use near 'desk `color`' at line 1 //テーブル名変更 alter table `color` rename to `colorx`; //desk DESC `colorx` →成功 //テーブル名元に戻す alter table `colorx` rename to `color`; //color DESC `color` →成功
984 :
975 :2012/10/17(水) 21:40:17.10 ID:???
>deskの失敗するテーブル descでした、すみません
985 :
NAME IS NULL :
2012/10/18(木) 01:14:18.91 ID:jxIImRzW