自前サーバでないため文字コードが設定できない場合の対策

レンタルサーバ等を使用する場合で /etc/mysql/my.cnfの変更ができない場合の対策。

mysql > status
で確認すると、charactersetがlatin1になっているため文字化けを起こす。

  1. BlueOnyx 「個人プロフィール」→「phpMyAdmin」メニューを選択。
  2. 「データベース」タブをクリック。
  3. 変更するデータベースをクリック。
  4. 設定を変更するテーブルを選択し、「構造」アイコンをクリック。
  5. 「変更」アイコンをクリック。
  6. 「照合順序」を「utf8_general_ci」に変更。

MySQLを使ってみる(Python + MySQL)

Pythonからの呼び出し(MySQLdb)】

  • データをSELECT
>>> import MySQLdb
>>> connector = MySQLdb.connect(user="ユーザ名", passwd="パスワード", db="wem", charset="utf8")
>>> cursor = connector.cursor()
>>> sql = 'SELECT * FROM inquiry;'
>>> cursor.execute(sql)
2L
>>> result = cursor.fetchall()
>>> for data in result:
...     print data
... 
(1L, u'\u9152\u4e95', u'123-456', 1.2)
(2L, u'\u9152\u4e95', u'555-456', 3.5)
    • cursor.fetchall() … 全てのデータを取得
    • cursor.fetchone() … 登録順に一つのデータを取得
    • cursor.fetchmany(n) … 登録順に n個のデータを取得
  • データをINSERT
>>> sql = "INSERT INTO inquiry (name, casno, usevalue) VALUES ('テストユーザ', '654-321', 2.5);"
>>> cursor.execute(sql)
1L
>>> connector.commit()

※ commit()しないとテーブルに反映されない。

  • データをDELETE
>>> sql = "DELETE FROM inquiry;"
>>> cursor.execute(sql)
1L
>>> connector.commit()

※ commit()しないとテーブルに反映されない。

  • 接続を終了
>>> cursor.close()
>>> connector.close()

こちらのURLを参考にさせていただきました。

MySQLを使ってみる(Python + MySQL)

MySQLの基本操作】

# mysql -u root -p [データベース名]
Enter password:
  • データベース一覧表示
mysql> SHOW DATABASES;
  • 使用データベースの選択
mysql> USER (データベース名);
  • データベース作成
mysql> CREATE DATABASE (データベース名);
  • データベース削除
mysql> DROP DATABASE (データベース名);
  • ユーザ作成
mysql> GRANT ALL PRIVILEGES ON (データベース名).* TO 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード';
mysql> FLUSH PRIVILEGES;
  • ユーザ一覧表示
mysql> SELECT Host, User, Password FROM mysql.user;
  • ユーザ削除
mysql> DELETE FROM mysql.user WHERE user='(ユーザ名)';
  • テーブル一覧表示
mysql> SHOW TABLES;
  • テーブル作成
mysql > CREATE TABLE (テーブル名) (
      -> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
      -> name TEXT,
      -> value double precision DEFAULT 0.0
      -> );

PostgreSQLで使用できるSEQUENCE(nextval())がないため、AUTO_INCREMENT属性を使用。

  • ファイルを読み込み、テーブル等を作成
# mysql -u (ユーザ名) -p (データベース名) < (sqlファイル名)

こちらのURLを参考にさせていただきました。

MySQLを使ってみる(Python + MySQL)

Python + MySQLCGIシステムを作成する予定です。
現在、それに向けて準備をしています。


【準備作業】

  • mysql-serverパッケージをインストールする。
    • rootユーザのパスワードを入力。
[client]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
  • python-mysqldbパッケージをインストールする。


こちらのURLを参考にさせていただきました。

IEのキャッシュについて

PythonCGIプログラムを作成していますが、IEを使用した場合にキャッシュの影響で最新の結果がうまく表示されない場合があります。

htmlのヘッダへタグを追加する、ブラウザの設定を変更するなど対処方法はあるようです。

結局、使用されているブラウザがIEの場合に、表示を1回リロードする方法で対処しました。

function reloadCheck() {
  var userAgent = window.navigator.userAgent.toLowerCase(); // ブラウザの判定        

    if (userAgent.indexOf('msie') != -1) { 
      // ieの場合のみ実行                         
      if (window.name != "reloadFlag") {
        location.reload();
        window.name = "reloadFlag";
       }
    }
}

こちらのURLを参考にさせていただきました。

Pythonで作成したCGIプログラムでレーダーチャートグラフを表示

使用するパッケージおよびライブラリです。

パッケージ:python-matplotlib
ライブラリ:matplotlib

こちらのURLを参考にさせていただきました。