Tag mysqlを表示しています。
2018.11.8 木
Reverse Proxyがかんでいるwebサーバーでは以下のようなエラーになって正しいログイン情報を入れてもログインできません。 There is mismatch between HTTPS indicated on the server and client. This can lead to non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly. mysqli_real_connect(): (HY000/1045): Access denied for user 'xxxxx'@'localhost' (using pass...
2018.9.25 火
MySQL5.7.22でrootのパスワードを設定しようと思ったら昔と全然違うことになっていた。 結果からいうと、 $ mysql -u root mysql> update mysql.user set authentication_string=password('foobar') where user='root'; mysql> flush privileges; mysql> exit; $ mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) $ mysql -u root -p Enter password: (foob...
2018.6.13 水
複数のor検索 OR検索+あいまい検索で検索ワードが定まっていないときなんかはクロジャーを使ういいっぽい。 use Illuminate\Support\Facades\DB; ... $words = array("ライオン","ゲノム"); $records = DB::table('sometable')->orWhere(function($query) use($words){ foreach ($words as $k=>$word) { $query->orWhere('text', 'like', '%'.$word.'%'); } }) ->orderBy('id','desc') ->get();
2018.4.3 火
事前の準備 項目 値 モデル app/SampleModel.php (namespace: App\SampleModel) テーブル名 sample_models を想定して説明します。(それともApp\Flightがいいですか?) namespace デフォルトの状態であれば、 use App\SampleModel; しておきます。newでもstaticでもそのままクラスが使えます。 通常は以下ぐらいやればこと足ります。 use Illuminate\Http\Request; use App\SampleModel; use Illuminate\Support\Facades\DB; newする $sample_obj= new SampleModel; でOKです。ほんとすごい...
2018.1.17 水
WordPressのソースの入手 初心者は本家にいってzipをダウンロード。玄人はcomposerとかGitでやったほうが楽。今回は初心者向け。 日本人なのでWordpress日本語サイトからソースをダウンロードします。頻繁にバージョンアップするので都度新しいのを落とした方が良さそう。 https://ja.wordpress.org/download/ ダウンロードしたら、適当な場所に解凍します。 今回は、 URL: http://example.com/wordpress DocumentRoot: /home/user/wwww を例に説明します。 アップロード /home/user/wwww/wordpress 解凍したものを上記パスにwordpressというディレクトリ名でアップロ...
2017.9.12 火
オートインクリメントの設定をしているカラム(id)に新しい番号が付番されていないっぽい。通常nullを入れるとオートインクリメントが設定されているカラムは自動的に次の値を付番します。急にインサートできなくなったという次第です。 1048:Column 'id' cannot be null auto_incrementの設定を確認する(1) 以下のコマンドで確認 show variables like '%auto_inc%'; 案の定おかしなことになっている mysql> show variables like '%auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +---------...
2017.8.24 木
ERROR 1064 (42000) at line 9****: 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 'Fatal error: Allowed memory size of 536****** bytes exhausted (tried to allocate' at line 40 mysqlのリストア時に出たエラーでちょっと見慣れないなぁと思っていたら、ダンプの時点でコケてました。phpMyAdminからおとしてきたダンプファイルだったので、phpMyA...
2017.7.28 金
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email)) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes こちらにきちんと書かれて...
2017.7.5 水
Maria DBなんですかね、本当は。 Macのxamppのmysqlがいちいち立ち上がらないことがあります。ロックできないとか何とかいろいろ言われます。 [ERROR] InnoDB: Unable to lock /Applications/XAMPP/xamppfiles/var/mysql/ibdata1, error: 35 .... まるっと関連ファイル削除して起動すると立ち上がります。理由はまだ探っていません。 rm -f aria_log.00000001 rm -f aria_log_control rm -f ib_logfile0 rm -f ib_logfile1 rm -f ibdata1 場合によっては無駄なmysqlのプロセスを全部killしておく。 で再起動。...
2017.6.26 月
MariaDBはMySQLとあんまりかわらないです。というか殆ど同じということでよいのではないかと思います。が、いずれちょっとづつ大きく変わるのだと思うわけです。 version comment MariaDB5.5シリーズ MysQl5.5までをサポート MariaDB5.5シリーズ MysQl5.5までをサポート MariaDB10.0シリーズ Mysql5.6を取り入れ、MariaDB独自機能があり。 MariaDB10.1シリーズ Mysql5.7を取り入れ、MariaDB独自機能あり。 ということになっているので、CentOS7では5.5シリースをyumでインストールしてしまうのが今のところ懸命ということになるでしょうか。 MariaDBをyumでインストール パッケージを見てみる...
2017.6.9 金
このコマンド mysql> show table status like 'test_table'\G *************************** 1. row *************************** Name: test_table Engine: InnoDB Version: 10 Row_format: Compact Rows: 2875 Avg_row_length: 552 Data_length: 1589248 Max_data_length: 0 Index_length: 0 Data_free: 25165824 Auto_increment: 5148 ←ここ Create_time: 2017-06-09 12:05:53 Upd...
2017.5.10 水
ちょっと古い記事ですが、Laravelでマイグレーション後にモデル作成してもデータが登録ができないというのがあって私のハマりどころとかなり似ているなという感じだったのですが、私の場合エラーも出なかったので、かなり苦戦しました。 初期化してみる 値をDBに登録する際に、取得したオブジェクトに値を入れて$xxx->save();で保存するだけですが全然インサートされず、おまけにエラーにすらならないということなので、とりあえずすべて初期化してみました。 マイグレーションで作成したテーブルをDBから削除。 まずはmigrationsテーブルの内容を削除(すでに運用中だったらこれはなかなか出来ないかもですが。。)それから、migrationsファイルをデフォルトのものだけ残して削除。(以下だけ残す) ...
2017.5.7 日
Formから何らかの情報を取り入れてDBに格納、メール送信といったところが基本的な機能になるかと思います。Frontから攻める方法とDBから攻める方法が(私個人としては)あるのですが、コントローラーから攻める方法は他の機能とのからみができてからと思うので、ここではDBまわりから順番に作成してゆきます。 設計 マイグレーションとモデル コントローラとビュー Formの設計 入力項目に加えて、データを保存する形式を踏まえて設計します。とはいえLaravelではartisanコマンドである程度必要なものを揃えてくれます。 テーブル名は無難に「ContactUser」にしておきましょう。データの保存項目は以下のようにします。 カラム名 データ型 内容 id increments ID last_na...
2017.5.3 水
WEBサーバーの冗長化にともなってMemcachedやRedisでセッション管理が人気ですが、ここではDBでセッション管理をする方法です。Laravelはとても簡単に設定できました。(少なくともCakePHP3よりかなり簡単に設定できます。) もともとartisanにDBのセッション管理のマイグレーションが設定されているので、.envのパラメータを1つ変更してマイグレーションを行うだけです。 Laravelはデフォルトではセッションドライバーはfileでセットされています。セッションを活性化させるとstrage/framework/session/*に各セッションファイルが生成されます。これをDBにインサートして管理します。 .envの設定 セッションドライバーをdatabaseに設定します...
2017.4.26 水
テーブルを作成する データベーステーブルの作成と管理、モデルとがいっかんして管理できるというのがいいところ。舶来品のLaravelは、model名が単数形(キャメルケース)、テーブル名が複数形(スネークケース)となります。 ここでは以下のように作成します。 term name table名 data_projects model名 DataProject model file app/DataProject.php migration file database/migrations/yyyy_mm_dd_hhiiss_create_data_projects_table.php モデルを作成する Laravel5の解説書にはモデルとマイグレーションは別々に作成することになっていますが、どっ...
2017.4.25 火
データベースでいろいろやる前に LaravelのDB操作は、いわゆるモデルとかエンティティとか使ってやたらと濃厚に接続する方法と、クエリビルダーを使ってあっさり使う方法があります。前者はEloquentORMを使って、後者はその名の通りクエリビルダーを使ってSQL操作します。 ちゃんとしたアプリケーションを作るのだったらDB周りもちゃんとつくった方がよいでしょう。 データベース接続情報 データベースの接続情報を記述するこの2ファイル。 .env config/database.php お好みいろいろあると思いますが、.envに記述した情報をdatabase.phpで使うというのがわかりやすくてよいかと思います。(最初は) どっちにしろ最終的にはdatabase.phpが設定ファイルなので、こ...
2017.4.19 水
xamppをインストールしていたらmysqlのフルパスがこうなので、こんなになっちゃう。 /Applications/XAMPP/xamppfiles/bin/mysql -u root -p これだと嫌になっちゃうのでパスを通しておく。 cd ~ vi .bash_profile ユーザーの.bash_profileにパスを追記しておく。 export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" 保存したら source .bash_profile これで、 mysql -u root -p で普通にログインできる。
2017.2.27 月
MySQLでCSVダウンロードしようと思ったらエラーになった。 $ mysql -u user -p > mysql use my_db; > mysql SELECT * FROM access INTO OUTFILE '/tmp/my_db.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement –secure-file-privでもってセキュリティー強くなった模様です...
2016.12.26 月
MySQLの比較的新しいバージョンになると例の-p12345(パスワード12345)を使うとWarningが出てしまいます。セキュリティー的によくないといえばよくないです。 mysql -u user -p12345 Warning: Using a password on the command line interface can be insecure. 仕様が変わったということになるかと思います。これから先正しくは、userとpasswordの設定ファイルを個別に作ってあげて–defaults-extra-fileオプションで読み込んで実行するというかたちになります。 confファイルの作成と実行 ファイル名は任意のものでよいです。仮にmysql.confとします。 [c...
2016.8.4 木
データベースの削除についてディレクターや営業さんとの誤解がすごくてすごくてちょっとコラム的な記事にしてみました。タイトルはデータベースの削除になりますが、肝はデータ自体の削除と抹消という話になります。 データは通常HDDに永続的に保存されるので、データの保存という定義はHDDに保存されているというものでよいかと。メモリに一時的に駐屯しているデータについては電源引っこ抜いたりすれば何とかなるので、データ保持の定義からは抜いておきます。 とはいえここではDBに格納されているデータ(MySQL)を例にしてすすめます。 1. WEBページ上から消える DBから引っ張りだしたデータがWEBページ上で利用される、または表示されるという仕組みを使っている場合、WEBページ上から消えると素人さんはデータを削...
2016.6.9 木
OSの確認(Linuxディストリビューション) CPUスペックの確認 メモリ容量の確認 HDD容量確認 Apacheの設定確認(設定情報、文字コード、モジュール) SSHの確認 MTAの確認 MySQLの確認 Perlのバージョン確認(Perlモジュールの確認(インクルードパスを調べる)) PHPのバージョン確認 ログインシェルの確認 OS確認 Debian GNU/Linux $ cat /etc/debian_version 4.0 Ubuntu あるいは、 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.0...
2016.5.23 月
開発中になんでわからないけどオートインクリメント属性が消えてしまったので修正。 mysql> ALTER TABLE [TABLENAME] CHANGE [COLUMNNAME] [COLUMNNAME] int(11) AUTO_INCREMENT; ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY' オートインクリメントに設定する値に0がある場合にこういうエラーになります。 0があるレコードを削除してもう一回実行すると大丈夫。 mysql> ALTER TABLE [TABLENAME] C...
2016.3.26 土
データベーススペシャリスト試験(DB)[Database Specialist Examination]というのがあったりして、何をテストするんだかという感じですが、データベースにはそれぞれの概念にそれぞれの名前がついています。その中に外部キー制約というものがあります。 その前に主キー制約というものがあります。これは、あるひとかたまりのデータを識別できるようにするためのデータの整理方法です。住所録を考えましょう。田中太郎さんがいたとします。彼は一個人でありますが、世の中には同姓同名がたくさんおります。田中太郎さんはもしかたら複数人いるかもしれません。その際に同じ住所録に二人の人間を登録すると識別ができなくなります。彼は全く別々の顔しているに違いないし全く別々の人生を歩んでいます。しかも東京都...
2016.3.23 水
CakePHP 3.x Document 公式ドキュメント CakePHP 3.x 日本語 ドキュメント CakePHP 3.x 英語(本家) CakePHP 3.x 日本語(本家) CakePHPフォーラム インストール http://book.cakephp.org/3.0/ja/index.html 現時点ではCakePHP 3.0.xxが安定版。マイナーアップデートはどんどんしているもよう。 最小単位のCakePHPは4.5MB程度で、通常Venderディレクトリ以下にいろいろ便利モジュールが入ってくるので、もうちょっと総合的な容量は増えてくるかもです。 サーバー PHP5.4以上 PHP mbstring 拡張 PHP intl 拡張 PHP mod_rewrite (*必須ではな...
2016.3.9 水
localhost以外からつなぐ方が業務的には圧倒的に多いのだけど、趣味的にはまるでこの世にはlocalhostしかないんじゃないかっていうぐらい外部ホストのMySQLに接続することはないです。 権限の設定 mysqlの権限設定grantでユーザー・パスワード・ホスト・DB名をいっしょくたに絡めて設定します。その際にホストの設定もすることになります。このホストにmysqlに接続してくるクライアント側のやホスト名を設定します。rootで設定しないとダメです。 mysql> grant all privileges on [DBNAME].* to [USERNAME]@[HOSTNAME] identified by '[PASSWORD]' with grant option; これで...
2016.3.6 日
dumpのとき Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions… GTIDsを使ったデータベースのレプリケーションをしているときにDumpするとこういうWarnigが出たりします。ダンプデータ自体は落ちてくるので問題なし。GTIDはトランザクションに紐付いたIDなので、例えば開発環境と本番環境などでスキーマだけ移動させたいときなんかは特に必要ないです。いすれにしろレプリケーション自体あんまりやらないので滅多に出ないWarningではあります。 Warning: A partial dump from a server...
2016.3.6 日
Login 最近のバージョンでは-pの後にパスワードベタ書きができなくなったようです。-pPASSWORD こういうやつ。 -hのホスト名を省略すると自動的にlocalhostになります。 mysql -u [USERNAME] -p -h [HOSTNAME] DB DB名を表示する ログインしたユーザーが操作できる権限のDBが表示されます。rootだと全部。 mysql> show databases; DBを選択する DB選択しないと中身の操作できません。 mysql> use [DBNAME]; Table DB内のテーブルを表示する mysql> show tables; テーブル削除(要注意!) こっちは物理的にテーブルごと削除されます。 mysql> d...
2016.3.6 日
テーブルの初期化の方法 連番になっている主キーとかを初期化します。 mysql> USE [DBNAME]; mysql> TRUNCATE TABLE [TABLENAME]; mysql> ALTER TABLE [TABLENAME] AUTO_INCREMENT = 1; これでレコードが1から始まります。 途中の番号から始める 例えば最初のレコードを1000から始めたい場合などはそのまま値を1000にするだけです。 mysql> ALTER TABLE [TABLENAME] AUTO_INCREMENT = 1000; ですが、実レコードに1000以上のものがあると実行できません。
2012.12.28 金
FTPなんかで接続後にWPのディレクトリ名だけ変えるのはNGです。基本的には、WPの管理画面の「設定」からWordpressのURLを変更後に実際のディレクトリ名を変更するのが正解です。 インストールディレクトリ名を変更してしまった後にログインしようと思うと「Not found 404」になって永久に再ログインできなくなってしまいます。 そういう場合は、PHPMyAdminなどでDBに直接アクセスしてsiteurlを直接変更してしまうのがよいです。 WPのDBのwp-optionsを開き先頭のsiteurlの中身を変更すればOKです。ログインできるようになるので、その他の設定は管理画面からいろいろやればよいです。ただ、ちょっとした弊害としてブログ記事に添付した画像のURLが違ってくるとかいろ...