mySQL一覧

[mySQL] Illegal mix of collations のエラー

Illegal mix of collationsのエラーが出た場合

異なる属性のデータをlikeに指定している可能性があります。

 

intSize lile ‘あああ’

 

属性を合わせた値をセットしましょう。

 



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[MySQL] TIMESTAMP型を明示的に自動更新させない方法

TIMESTAMP型で属性が「on update CURRENT_TIMESTAMP」となっているフィールドは更新時に自動で最新の日付がセットされるので便利な時もありますが、処理の都合上、更新したくないときは、明示的に更新を避けるような

SQL文を組み込むことができます。

 

日付フィールド名 = 日付フィールド名 のように、現在のフィールド値にフィールド名を入れるようなupdate文を作り実行すればOKです。

update table_name set value = ‘12345’, startYmd = startYmd where id = ‘1234’;



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[amazon クラウド] RDS上のMySQLでリージョン間のレプリケーションを構築する

2015-07-12前回、前々回とRDS内でのレプリケーションの仕組み、MySQLでのレプリケーションの仕組みををまとめましたが

それを踏まえて

リージョン間でレプリケーションしたらどうなるかをまとめてみました。

WS000038

つまり更新系はマスターでないと他のスレーブに配ってくれないので、データは

マスターに行く。参照系は、各リージョンにあるRDSに繋げば、データ量が多いクエリも

マスターを見に行くより早いのは間違いない。

この方法による構築での課題点は

・参照系と更新系でデータベースの接続先が違う。

・MySQLのレプリケーションは非同期レプリケーションなので、タイミングによっては、
整合性がとれていないクエリー結果になってしまう。
上記の図の例で言いますと、海外1と海外2はタイミングによっては、結果がずれる。
東京は、マスターを参照するので、ずれはない。
因みに、リージョン内での参照系レプリケーションであればRDS側のReadReprication機能で対応できます。

具体的な手順を以下に記載します。

1.まず、マスターのEC2を立ち上げます。

2.MySQLをインストールしましょう。

3.マスターのリージョンにRDSインスタンスをmySQLで起動します。

•MySQL5.6.13のRDS

•Publicly AccessibleをON

•Mullti-AZオプションはOFF

•セキュリティグループではお互いの通信を許可

ポートの開放

インバウンド、アウトバウンド両方

4.EC2からRDSのmySQLに接続

5.ここでレプリケーション用のユーザーを作成しておく

6.テスト用のテーブルを作成する。

7.バイナリ―のログにアクセスできるようにストアドプロシージャーを実行する。

8.内容を控えておく

8.次に、スレーブ用のリージョンのRDSのインスタンスを起動します。

同じようにポートを解放してください。

9.スレーブのデータベースに接続します。

10.レプリケーション用のユーザーを作成します。

11.マスターのデータベースをそのままスレーブにコピーします。

最初にマスターをダンプします。

次にスレーブ側でダンプファイルをインポートします。

12.スレーブ側 mySQLにて以下ストアドプロシージャ―を実行します。

先程の内容をセットします。

13.スレーブ側でレプリケーションを開始します。

14.状況確認します。

13.マスター側で

データを登録

14.スレーブ側でレコードが増えているか確認 レコードが1件増えていれば

同期確認完了。



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[MySQL] レプリケーションの仕様(マスタースレーブの関係)

前回のアマゾンクラウドでのお話でもお伝えしましたが、レプリケーションとは、

データベースを複製することで、以下の役割を満たします。

・データベースがぶっ壊れたときのための予備

・もうひとつ同じデータベースを作っておくことで負荷分散スピードアップ

mysqlは

非同期レプリケーションによるマスタースレーブ型です。

非同期レプリケーションとはマスターの更新状況の保全を待たず同時に書き込むこと。

マスタースレーブ型はマスター1つに複数のスレーブを持つ。更新はマスターに全てやらせる

その内容をスレーブが取りにいく仕組み。

高機能のデータベースソフトはマルチマスター型もできる。

常に自分もマスターになれるということ。みんなで更新する感じですね。

mySQLは、マスタースレーブの関係は出来上がっています。

 

 

 



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[mySQL] 指定したテーブルの最大カラム数を取得したい

select count(*) from sys.columns
where object_id=object_id(‘テーブル名’)

sys.columsというシステムで用意されたテーブル(ディクショナリ)に

を参照して取得するというパターン



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




ASP.NETとLAMP環境のデータ連携を実現

■構想検討

構想としましては
OSが異なるので、お互いAPIを用意し、API経由でデータを連携させるように構想しました。

お互いのOSからクロスで放り込む方法も見つけましたが
LINUX→SQLServerの場合、ドライバーをLINUX上にインストールする必要が発生する可能性があり
難易度が少し上がります。

■仕様
クロス同期つまり、ひとつの会社テーブルの情報を常に同期させる。ASP側で更新されたらLAMPにも更新するし
逆も同様にする。

■環境準備
LAMPのシステムとASP.NETシステムの環境のデータ同期ということ。
データベースの方は一緒。SQLServerのデータをMySQLに移行。

workbenchを使います。

データ変換には癖がありますが、何回か行っていると規則性が見えてきます。
■具体的なコーディング
お互いPOSTで渡す仕組みを実現します。

phpからASPへは

 

curlのライブラリから行ったほうが実績があったのですが、

なるべく標準関数(curlもすでに共通ですが)で行った方が望ましいかと考えました。

ASPからphpへは

//バイト型配列に変換

 

POSTを&でつなげてPOST送信します。

メルマガ登録して、小技を身に着けてください。


 



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




SQLServer から MySQLへストアド移植

名称

SQLServer ストアドプロシージャー

MySQL ルーチン

まだまだMySQLは簡易的な印象を受ける。

SQLServerでバリバリ動いていたデータベースをMySQLに移植するのは

どこまで耐久力があるかどうかというのが心配なところ。

まずはDECLARE

デクレアで変数宣言これは共通かな。

上記でまとめて宣言が必要

テンポラリーテーブルの最初の文字は#をつけない。

ISNULLよりIFNULL



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




mySQLの動きについて

http://www.sonorilo.net/2010/03/02/2718

検索条件の挙動が微妙。。

親切なのはありがたいですね。
でも親切すぎると。。

おせっかいとか言われてしまう。



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




MySQL文字化け対策

MySQLで?とか日本語が表示されてしまったときは

$db->query(“SET NAMES sjis”);

で直る場合がよくあります。
みなさんお試しください。



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




coreserverのmysqlメモ

valuedomainから上位coreserverへのデータベース移行メモ

1.valuedomainの管理画面にてデータベースの保存を
 行います。

2.データベース間コピーを行い、mysql.dumpファイルを coreserverへコピーします。

3.コアサーバーへログインして、データベースを作成します。

4.sshでログインして
 データベースを使用するようにします。

$ mysql -u newdatabase -p
password:

mysql >use newdatabase

mysql >source mysql.dump

でインポート完了



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。