MySQLは、バージョン5.5から設定内容がいろいろ変更になっているので、気づいた(ググって各サイトから教えて頂いた)点をメモしていく。
文字コード設定
# MySQL-5.5 default-character-set --> character-set-server character-set-server=utf8
MySQLは、バージョン5.5から設定内容がいろいろ変更になっているので、気づいた(ググって各サイトから教えて頂いた)点をメモしていく。
文字コード設定
# MySQL-5.5 default-character-set --> character-set-server character-set-server=utf8
いつも使っているのだが、ついつい忘れがちな設定方法をメモする。
sshdによるファイル転送を行うため、Linux(SVR)側で設定内容を確認する。
アクセスの制限sshd: 127.0.0.1 192.168.0. 192.168.1./etc/hosts.deny にアクセスを拒否先を設定。
sshd: ALL/etc/ssh/sshd_configの編集
#Port 22 #■ポート番号を変更しても良い 例) 2222等 #Protocol 2,1 #↓■SSH 2 のみ接続を許可 Protocol 2 #PermitRootLogin yes #↓■rootでのログインを禁止 PermitRootLogin no #↓■パスワード方式ログインで設定する場合、パスワードでのログインを許可 PasswordAuthentication yes
#↓■鍵方式ログインで設定する場合、パスワードでのログインを拒否 PasswordAuthentication no #↓■ 空パスワードの禁止 PermitEmptyPasswords no
【ログイン方式で鍵方式を設定した場合】
手順は下記の2通り考えられます。サーバーとクライアントが身近な(同一建物)場合は【手順1】で行い、ネットワークでの転送が必要な場合には、【手順2】が良いかも...
【手順1】でネットワークを経由で転送も方法を考慮すれば問題ないかもね。(キーをパスワード付きで圧縮して送り、パスワードは別手段で伝える)
ここでは、公開鍵・秘密鍵ともにデフォルトの値(名前)を使用して説明します。(鍵の生成時の名前(鍵名)は好きな名称をつけることが可能)
デフォルトでは、公開鍵(id_rsa.pub)・秘密鍵(id_rsa)になります。
【手順1】
■authorized_keysがない場合 $ cat ~/.ssh/id_rsa.pub > authorized_keys ■authorized_keysがある場合 $ cat ~/.ssh/id_rsa.pub >> authorized_keys ※登録したら、作成した id_rsa.pub(公開鍵)は削除します。
$ ssh-keygen -t rsa
実際に確認してみると大した事ないのだが... (^_^)
phpMyAdminで見れば良いだろうと言えばそうのだが、やはりSQL文で定義情報を確認および保存しておく事が必要(DBやテーブルの一括作成)な時も多々ある。
CakePHPでschema.php に定義を追加する時なども必要になる。関連など後から作成した表が schema.php にない場合もあるので、定義情報を簡単に出力できるように確認しておくべきだ。
■MySQL では、下記の通りで対応できる。
■コマンド [hogehoge@hoge]$ mysqldump -h[ホスト] -u[ユーザ名] -p[パスワード] -d [データベース名] [テーブル名] ■出力結果 CREATE TABLE `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(50) CHARACTER SET utf8 NOT NULL, `password` varchar(50) CHARACTER SET utf8 NOT NULL, `fullname` varchar(50) CHARACTER SET utf8 NOT NULL, `email` varchar(256) CHARACTER SET utf8 NOT NULL, `tel` varchar(20) CHARACTER SET utf8 NOT NULL, `memo` text CHARACTER SET utf8 NOT NULL, `created` datetime DEFAULT NULL, `updated` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
■コマンド set long 10000 (出力する文字数を指定…10000文字まで) select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; ■出力結果(テーブル:users) DBMS_METADATA.GET_DDL('TABLE','users') -------------------------------------------------------------------------------- CREATE TABLE "HOGE"."USERS" ( "ID" NUMBER(6,0), "USERNAME" VARCHAR2(50), "PASSWORD" VARCHAR2(50), "FULLNAME" VARCHAR2(50), "EMAIL" VARCHAR2(256), "TEL" VARCHAR2(20), "MEMO" VARCHAR2(512), "CREATED" DATE, "UPDATED" DATE, CONSTRAINT "USERS_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE ) PCTFREE 20 PCTUSED 70 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ※上記は別ファイルの出力結果をMySQLのテーブルと項目名を揃えた編集版です。 よって、領域の情報は元々のテーブルの値をそのまま表示しています。
分析関数やらを駆使してSQL文を作ると100行以上の長文になり、長い行は300文字以上になってしまう事もよくある。
その際には、行単位でインデントして少しでも見やすくしておくのだが、そのインデントの空白が徒になりエラーが発生するのがこの「SP2-0734」である。
■原因
一行が長い文に行頭インデントを行うための空白が実行時に空白行を生み出しているようである。
■解決策として下記のコマンドを使う
SET SQLBLANKLINES ON
このコマンドで空白行が除去されるため無事にSQL文が実行される。
エラー発生時のSQLPLUS画面
毎度の事ながら、書籍の通りにコーディングしてもうまくいかない機能が発生する。
CakePHP初心者の私には、解決するのに時間がかかって困る。 (>_<)
しかし、結果的には「CakePHPの辞典」やら別の実習書籍やらネットでググったりして少しづつ理解を深めていっているようだが... (・ ・?)
今回のお題はこちら...
action == 'add' || $this->action == 'edit') { $this->AppAuth->authenticate = $this->User; } if($this->User->findCount() == 0) { $this->AppAuth->allow('add'); if($this->action != 'add') { $this->redirect('add'); exit; } } return parent::beforeFilter(); } function login() { } function logout() { clearCache('element_'.$this->AppAuth->user('id').'_action_menu', 'views', ''); $this->redirect($this->AppAuth->logout()); } } ?>上記だけの抜粋での説明には無理があるかと思いますが、default.ctp にてログアウトを行うリンクを貼り、上記のlogoutが実施されるという手はずになていますが、ログアウトが行われない。
AppAuth->logout(); if($this->action == 'add' || $this->action == 'edit') { $this->AppAuth->authenticate = $this->User; } if($this->User->findCount() == 0) { $this->AppAuth->allow('add'); if($this->action != 'add') { $this->redirect('add'); exit; } } return parent::beforeFilter(); } ‥‥‥ 省略 ‥‥‥ } ?>
上記の設定でログアウトはできるようになったが、ログアウト以外を選択してもログアウトされてしまう... 解決になってない。orz
昨日、2011年10月16日に受験したネットワークスペシャリストの結果が発表された。試験勉強は試験直前に10日程度勉強したが、勉強不足と思いながら受験したが、試験内容は思っていたよりも簡単に感じ特に午後Ⅱについてはかなり上出来でした。これば結果が楽しみと考えていたら...
なんと、結果は「不合格」という内容でした。
試験ではOSPFやBGP-4の知識に不安があったのですが、実際の試験ではこの部分の割合が少なかったので「ヤッター」なんと心の中で喜んでいた次第でしたが、実際には午後Ⅱでなく、午後Ⅰで得点が 2点 足りずに不合格になっていました。
まさかの午後Ⅰの得点不足で、午後Ⅱの出来を確認することも出来ず不戦敗のような感じです。
結果は下記の通りで...
10月以降になってから、ランニングを中止(雨天等を含めて)する日が増加傾向にある。
ここ数ヶ月は、「腰痛」やら「こむら返り」やらでどこかが痛んでいることが多いので少し天気が悪いとすぐ弱気になり危険(転ぶと)を意識してか、それとも深層心理でランニングを拒絶しているのか...orz
ここ数ヶ月では、下記のようにランニングを中止する日が増加している。
※気を引き締めねば...
・7月→1日
・8月→4日
・9月→1日
・10月→6日
・11月→10日
・12月→3日(12月14日までで)
この5年間では、多くても月に5日以内で推移していたのだが、先月と先々月はちょっと休み過ぎだったな...
ちなみに、10月10日から距離を延ばして6キロ強にした。
ランニング前には、腕立て伏せを30回、ランニング後には腿上げを250回と...鍛えているつもりなのだが...
最高タイム:29分01秒
目標タイムを28分台にしてみたが、未だ達成できず...orz
なんか、寒くなるにつれてタイムが出なくなってきている。
9月までは、5キロ強であったが、現在の5キロ強時点でのタイムと比較しても今よりも1分以上早く走れていた。9月までの調子なら6キロ強でも28分は楽勝と考えていたのだが...
とりあえず、28分を目標に頑張ろう!εε=ε=εε=┏( >_<)┛
このLinuxマシンのディスクを交換してから初めておかしくなった。(このマシンでは初めてかも)
前回は、ディスク交換前のディスクでフリーズして再起動した際にディスクが修復できなくなった。
現象としては、画面がブラックアウトしてキーボードやマウスを操作しても変化なし。しかし、ディスクランプや点灯しており、キーボードを打つと反応している風にも見えるが、画面は回復せず。
↓↓↓
仕方なくリセットボタンを押して再起動を実施する。
各種サーバー(DB・samba・httpd...)などが起動していので、案の定ジャーナルファイルの異常が表示され...
リセットボタンで強制終了させたので、再起動時にファイルシステムの検査と修復が行われているが、ふとファイルシステムのチェックについて確認をすることにした。
ファイルシステムをチェックするには、対象のファイルシステムをアンマウントするか読み込み専用でマウントしておく必要がある。
オプション | 内容 |
---|---|
-s | 複数のファイルシステムに対し、順を追って順々に処理する |
-t tstype | ファイルシステムを指定する |
-A | /etc/fstabに記述されているすべてのファイルシステムの検査と修復を行う |
-N | 実際には実行せず、実行内容だけを表示する |
-R | ルート・ファイルシステム以外の全てのファイルシステムの検査と修復を行う |
-T | 起動時にタイトルを表示しない |
-V | fsckから起動されるコマンドなどの詳細な情報を表示する |
【/etc/fstab】
LABEL=/ / ext3 defaults 1 1 LABEL=/tmp /tmp ext3 defaults 1 2 LABEL=/var /var ext3 defaults 1 2 LABEL=/var/log /var/log ext3 defaults 1 2 LABEL=/usr /usr ext3 defaults 1 2 LABEL=/usr/local /usr/local ext3 defaults 1 2 LABEL=/home /home ext3 defaults 1 2 LABEL=/opt /opt ext3 defaults 1 2 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=SWAP-hda12 swap swap defaults 0 0
何度も記載しているが、書籍の通りに記述しても実行できない箇所が多数あり、なかなか最後までたどり着けない。
サポートのサイトを閲覧しても、こちらの疑問箇所はひとつだけ掲載されていたが、その内容はあくまでもcakephp1.2のみに通用する内容のようで、cakephp1.3以降で試す場合は、多数の箇所で問題にブチあたります。
私と同じような内容で悩む方の助けになれば幸いですが...
書籍(CakePHPによる実践Webアプリケーション開発)では、下記のようにHABTMを検索するように記載されていましたが、エラーになってしまいます。
$user_ids = $this->Group->Belong->find('list', array( 'conditions'=>array('Belong.group_id'=>$group_id), 'fields'=>array('Belong.user_id','Belong.user_id'), 'group'=>'Belong.user_id'));エラー内容(habtmを検索できない)
Notice (8): Undefined property: Group::$Belong [APP/controllers/schedules_controller.php, line xx] Fatal error: Call to a member function find() on a non-object in /var/www/cakephp/calendarnote/controllers/schedules_controller.php on line xx上記のようにエラーになるなので、habtmの関連モデル(Belog)を検索するように変更した。
$user_ids = $this->Belong->find('list', array( 'conditions'=>array('Belong.group_id'=>$group_id), 'fields'=>array('Belong.user_id','Belong.user_id'), 'group'=>'Belong.user_id'));上記の変更で、無事に検索したいデータが検索されるようになった。