Port:80が使用されていてapacheを起動できない
apacheを起動しようとしたらほかのプロセスが80番ポートを使用しているらしく起動することができない。
netstat -ano で使用しているプロセスを確認。
PID:4とはなんじゃらほい……
4とはWindowsのSystemで動いているものだそう。 ふむ、止められないか……?
こちらのブログを参考に解決をもくろむも、World Wide Webサービスにチェックがないのでここが原因ではないことが判明。
念のため、チェックが入っていた.NET FrameWorkのチェックを外して再起動してみるもやはり効果はなくポート80は生きたまま。 ほかのサービスか……
今度はこちらのブログを参考にしてみる。
コンパネの管理ツールからサービスをチェック。 SQL Server……これが自動になっているのが怪しい。 SQL Serverのプロパティを変更して手動起動に。 これだけでは解決できなかったので、かつ停止にしてみる。
netstat -ano !!!!!
ポート80が解放されたああああああああ 長い戦いだった……
外部キーの設定でError:1215
あるテーブルにカラムとそのカラムに対応する外部キー制約を追加することになった。
BEGIN;
ALTER TABLE テーブルA ADD
id
int(10) AFTERquantity
; ALTER TABLE テーブルA ADD CONSTRAINTテーブルA_ibfk_1
FOREIGN KEY (id
) REFERENCES テーブルB (id
) ON DELETE CASCADE ON UPDATE CASCADE;COMMIT;
よく見る形だと思うが、これでエラーが吐き出されてしまった。
Error Code: 1215. Cannot add foreign key constraint
どうやらINDEXも張らないと外部キーが設定できないらしい……(使用しているのはMySQL5.6(InnoDB))
INDEXを張ることで外部キーが設定できるようになった。
JSライブラリを用いてパーティクルを飛ばす
web背景にパーティクルを飛ばすJSライブラリ
・particles.js
particles.js - A lightweight JavaScript library for creating particles
・particlejs
名前が似ているが……
どちらもパーティクルの形やマウスクリック時の動作、色など、サイト上で動かしてみたコードを自動的に吐き出してくれる。
導入は比較的容易そうなので、よりリッチなページにしたい場合に用いることができる。
MySQLでupdate文を実行するとError:1175
MySQLでUPDATE文を実行すると、以下のエラーが発生した。 (Workbench使用のときに限る)
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences
実行したSQLはこちら。
ex.
UPDATE table SET count_max = floor(count/100) WHERE floor(count/100) < count_max; なお、countもcount_maxもPKではない。
このエラーが起きる原因は、大量の(主キー以外の)update/deleteをワークベンチから行えない制約になっているから。 一時的にこの制約を外してあげると実行可能。
SET SQL_SAFE_UPDATES = 0;
なお、元に戻してあげるには、このフラグを1にする。
SET SQL_SAFE_UPDATES = 1;
Error Code: 1248. Every derived table must have its own alias
あるテーブルに対して以下のようなSQLを発行する。
select ( case when (select * from (select * , count(*) as count from SAMPLE where columnA = 1 group by columnB) where count >= 5) then ( select * from SAMPLE where columnC = 1 and columnD = 0 and columnE = 0 ) else null end)
このSQLのままだと
Every derived table must have its own alias
というエラーが出る。
「derived」は生成された、という意味。
意訳(ほぼ直訳だけど)すると、すべての生成されたテーブルはそれぞれのエイリアスを持たなければならない、とのこと。
派生テーブルにはエイリアスをつけてあげろよな!ということなので、
select ( case when (select * from (select * , count(*) as count from SAMPLE where columnA = 1 group by columnB) as SAMPLE_A where count >= 5) then ( select * from SAMPLE_A where columnC = 1 and columnD = 0 and columnE = 0 ) else null end)
にしてあげるとこのエラー自体はなくなりました。