MySQL 絵文字のデータを挿入できない
MySQL: 5.5.54-0+deb8u1 (Raspbian)
MySQLに絵文字を入れようと思うとutf8では入れられないらしい。utf8mb4という文字コードが用意されていて、それを使えば対応できるそうです。
MySQLのutf8は1文字3バイトとして扱っている。しかし、絵文字などは1文字4バイトになっているためデータを扱えない。
http://okamerin.com/nc/title/mysql_utf8mb.htm
MySQLの文字コードをutf8mb4にする - light log
my.cnfの設定
自分のmy.cnfは /etc/mysql/my.cnfにあった
クライアントとサーバーの文字コードを設定する
[client] ... #default-character-set = utf8 default-character-set = utf8mb4 # utf8mb4に変更 [mysqld] ... #character-set-server = utf8 character-set-server = utf8mb4 # utf8mb4に変更
データベースの文字コード設定
mysql> alter database databasename default character set utf8mb4;
テーブルの文字コードを設定
mysql> ALTER TABLE m_listener DEFAULT CHARACTER SET utf8mb4; mysql> ALTER TABLE latest_comments DEFAULT CHARACTER SET utf8mb4;
Python:ファイルへの書き込み
Pythonでのファイル操作 - Qiita参考にさせていただきました。
# 上書き with ("myfile.txt", "w") as f: f.write("hello world\n") # 追記 with ("myfile.txt", "a") as f: f.write("hoge")
もし、指定したファイルが存在していなかった場合には作成してくれる
MySQL データベースとユーザーの作成
環境
Raspberry pi3
OS: Raspbian jessie lite
MySQL: 5.5.54-0+deb8u1 (Raspbian)
やること
1.データベースの作成
2.ユーザーの作成
3.権限の付与
4.パスワードの設定
データベースの作成
rootでログインする
例)testdb という名前のデータベースの作成
mysql> create database testdb;
ユーザの作成
(1)ユーザの作成、権限付与
例)user1という名前のユーザを作成
・user1は testdbのすべてのテーブルにアクセス可能
・uesr1は権限付与以外の権限を持っている
mysql> GRANT ALL ON testdb.* TO user1@localhost;
(2)設定を反映
mysql> FLUSH PRIVILEGES;
(3)作成したユーザにパスワードを設定する
例)user1のパスワードに「password」を設定する
mysql> SET PASSWORD FOR user1@localhost=password('password');
【メモ】MySQLdbをimportできるようになるまでのコマンド
環境
Raspberry pi3
OS: Raspbian jessie lite
PythonからMySQLに接続したくて躓いた
PythonからMySQLに接続するための準備として mysqlclient をpipでインストールしたかったけど、なんかできなかった
いろいろ調べながらコマンドうってて、どのコマンドによってできるようになったのかがよくわからないから実行したコマンドを載せておく
$ sudo apt-get install python-pip $ sudo apt-get install python-dev python3-dev $ sudo apt-get install libmysqlclient-dev $ pip install -U pip $ easy_install -U setuptools $ sudo apt-get install python-mysqldb $ pip3 install mysqlclient
とりあえず、できてよかった(?)
参考にしたサイトはたくさんあってよくわかりませんでした。
外部のネットワークに接続できない
環境
Raspberry pi3
OS: Raspbian jessie lite
ping google.com でエラーになる
外部のネットワークに接続できない...
pi@raspberrypi:/etc $ ping google.com connect: Network is unreachable
デフォルトゲートウェイが正しく設定できていなかった
外部と通信するための出入り口
/etc/network/interfaces に設定を記述することで解決した
ゲートウェイの確認をしてみた
pi@raspberrypi:/usr/bin $ route -v カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース 192.168.3.0 * 255.255.255.0 U 303 0 0 wlan0
ゲートウェイが'*'だと、設定できていないらしい
あれ、 /etc/dhcpcd.conf に書いたんだけどな
# /etc/dhcpcd.conf static domain_name_servers=192.168.3.1
設定が反映されていないっぽい?
/etc/network/interfaces にゲートウェイの設定を記述する
固定IPにしていて、設定する場合
manual を static にする
address, netmask, gateway を追加する
# /etc/network/intetfaces ... allow-hotplug wlan0 iface wlan0 inet static wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf address 192.168.3.14 netmask 255.255.255.0 gateway 192.168.3.1
再起動する
外部と通信でるようになった
pi@raspberrypi:~ $ ping google.com PING google.com (216.58.221.14) 56(84) bytes of data. 64 bytes from nrt13s38-in-f14.1e100.net (216.58.221.14): icmp_seq=1 ttl=55 time=5.90 ms 64 bytes from nrt13s38-in-f14.1e100.net (216.58.221.14): icmp_seq=2 ttl=55 time=9.36 ms 64 bytes from nrt13s38-in-f14.1e100.net (216.58.221.14): icmp_seq=3 ttl=55 time=29.5 ms
参考サイト
weworkweplay.com
CentOS スクリプトを定期的に実行する crontab
CentOS7で定期的に実行する
これは定期的になにか取得したり、投稿したりしたいときに使えるかも
crontabというものを使う。
cron の設定ガイドをみながらやってみた
crontab -e
で設定を行う
20 02 * * 1 $HOME/.pyenv/shims/python 実行したいファイル
pyenvの場合、$HOME/.pyenv/shims/pythonで実行しないといけないらしい
デフォルトでは、システムにインストールされているpythonで実行されてしまうため