進捗
12/12
MySQLでデータベース構築の続き。
ポートについては、XAMPPのConfファイル内にある"httpd.conf"の内容を2か所書き換えるだけで接続できました!
"LISTEN 80"と"SereverName 80"みたいな構文があるので、"80"の部分を未使用のポート番号(自分は81)にしたら、"http://localhost:81"でXAMPPの画面が表示されました!
これで完了だと思うのですが、どうなんだろうね??
続いてテーブルを作成するためのデータベースを作成。
データベースを作成する方法は、
XAMPPコンパネからShellを開いて、"MySQL"を入力し接続する。
その後"CREATE DATABASE データベース名"を入力すれば、いいはずなのですが、エラー("構文エラー"と"接続できません")が出て作成できません。
理由として考えられるのが、
・ポートを変更したことによる不具合
・権限付与がされていない
・インストール時のエラー?
だと思います。
ポートを変更したので、いちいちローカルホスト:81を設定しなければならないのでは、というのが有力かな?
やり方がわからないので、CREATE文に"-u @localhost:81"を付けたりいろいろしてみます。
>>MySQLはわかんないです。勉強します。しません。もしかしたらします。
構文から推測するのはわたしもよくする手法で、.txt方式のコンフィグでよく使いますね。
12/13
ローカルホストでmysqlにアクセスすることができました!
(コマンドはあきらめ。)
方法として、こちら(https://techacademy.jp/magazine/4137)のサイトで表示されているURLを入力するだけです。(http://localhost/phpmyadmin/index.php)
自分の場合はポート番号を弄ってapacheを起動しているため、実際には"localhost"に":81"を付け加えて、http://localhost:81/phpmyadmin/index.phpにアクセスしています。
また、サイトにはパスワードを要求されると記述されていたのですが、自分は要求されずそのままphpMyAdminの画面(mysql_localhost.jpg)が表示されました。
パスワードの設定方法はまた調べようと思います。
で、実際にデータベースをつくってみました。
まず左上のデータベースタブをクリックするとデータベースページが開きます。その真ん中にデータベース名入力ボックスがあるので、任意のデータベース名を入力して作成を押します。(今回はsampledb)
すると、テーブル作成画面が開くので、テーブル名とカラム数(今回はsample、10個)を入力して作成を押します。
その後11、22、33、(省略)、99、1010の数値(適当です)を入力し、保存をクリックすると"sampledb内のsampleテーブル"が作成され、これで完成なはずです。
長かった。。。
さらにこのデータベースに、認識した文字を自動で格納し続けるプログラムを書こうと思っています!
PythonはSQLiteというモジュールがあるそうなので、MySQLさえ設定できれば簡単に行えるとはおもいます。
>>MySQLは本当にわかりません。触ったこともありません。もはや助言もきついかな。
12/14
まずはSQLからテーブルを作成する、またカラムを追加する方法について調べました。
テーブルの追加方法は、以下の文を打ち込み実行します。
SQL----------------------
CREATE TABLE `データベース`.`テーブル名`
(カラム1 型, カラム2 型, カラム3 型, ...)
-------------------------
これで任意のデータベースにテーブルを追加できると思います。
むつかしい。
つぎは作成したテーブルにカラムを追加します。
SQL-----------------------
ALTER TABLE `データベース`.`テーブル名` ADD `追加するカラム` TEXT NOT NULL AFTER `追加するカラムの前のカラム`;
---------------------------
もし、"こんちゃ"、"ばんちゃ"、"おやすー"の3つのカラムが格納されているテーブルに、"おっはー"を追加したいとします。
追加するカラムに"おっはー"を、また例えば"こんちゃ"の後に追加する場合、AFTERの後に`こんちゃ`を入力することで指定できます。
わからなくなったときは、データベース>テーブル画面の、構造タブをクリックすると、テーブルの下に"1⃣個のカラムを追加する"という行があるのでそこから手動で追加することができます。
PHPMyAdmin上ですが、なんとか操作できるようになりました。
できるなら、シェル上でできるようにしたかった。。。。
明日はjuliusで受け取ったデータを作成したデータベースにぶちこめるようにしたいと思います。
ただ、XAMPPコンパネでデータベースを参照すると、PHPMyAdminで作成したデータベースが表示されないのが懸念事項。。。おたすけ。
とりあえず実装したことを固めつつ頑張りますぅ
>>むむむ。
12/15
データベースは事前に作成しておけば問題ないことに気づいたので、Pythonでレコードを追加する方法だけ調べたいと思います(`・ω・)
データベースの構成についてはdb_temp.xlsxにまとめた感じかな??
追加したほうがいいものはおいおい。実装できるかは別として必要事項を考えていきたいとおもいます。
あとデータベースに追加していく方法として、別にテキストファイルを作っておいて、発話された内容を随時ファイルに追記しておく。
"さようなら"と認識したらブレイクして終了するので、ブレイク前にデータベース追加モジュールに入ってデータベースに登録する。
という形にしようと思ってます!
他の方法とか思いついたら教えてくれさい・・・m(_)m
>>間違ったものも重複したらカウントで追加できると楽かな。とはいえ私にはできませぬ。言うだけなら簡単というやつですね。
12/18
Pythonでレコード追加することができました。
使ったものはMySQLdb。
cmdで"pip install MySQLdb"と打ち込めばインストールできます。
以下"レコード追加コード"
py----------------------
#インポート
import MySQLdb
#SQLにコネクト
#パスワード設定をしている場合、パスワードに任意の文字列を入力。しないと入れない。
connection = MySQLdb.connect(
host = '127.0.0.1', user = 'root', password = 'password', db = 'test', charset = 'utf8')
#カーソルげと
cursor = connection.cursor()
#SQL文入力
cursor.execute("insert into sample values('3', 'apple')")
#コミットしないと実行結果が反映されない。
connection.commit()
connection.close()
-----------------------
あと、テーブルを作るときにAUTO_INCREMENTを指定してテーブルを作ると、勝手に指定の項目を連番にしてくれる。
SQL----------------------
CREATE TABLE テーブル名(column1 INT AUTO_INCREMENT NOT NULL PRIMARY KEY, column2 VARCHAR(50), column3 INT);
-------------------------
アドミンでの指定の仕方はわからんかったので、SQLでやりました。
>>アドミン=Administratorのことかな。管理者のことです。そしておそらく権限について言ってます。