20200516のMySQLに関する記事は3件です。

DjangoでMySQLを利用する

はじめに

ここでは、djangoのデータベースとして、標準搭載されているsqliteではなく、MySQLを利用するための設定について解説します。
なお、MySQLは、MAMPでインストールしたものとします。

使用するデータベースの宣言

まず、manage.pyで、MySQLを利用する旨を以下のように明記します。

manage.py
import pymysql


pymysql.install_as_MySQLdb()

使用するデータベース情報の記述

そして、settings.pyでデータベースの詳細情報を記述します。

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': データベース名,
        'USER': (使用するデータベースの)ユーザー名,
        'PASSWORD': (使用するデータベースの)パスワード,
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
        'PORT': '8889'  # MAMPの場合,
    }
}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWSデプロイ時MySQLエラー集

参考文献

エラー① "cannot open shared object file"

LoadError: libmariadb.so.3: cannot open shared object file: No such file or directory

解決策① 検索パスの設定

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

解決策② 共有ライブラリの依存関係の再設定

$ cat /etc/ld.so.conf
$ echo "/usr/lib64/XXXXX/lib" >/etc/ld.so.conf

解決策③ MySQLのgemを再度インストール

$ bundle exec gem uninstall mysql2
$ bundle install

エラー② "Access denied for user"

ERROR 1045 (28000): Access denied for userとなったときの対応方法

解決策① 特定のDBにのみ全権限有効なユーザを作成する

grant all privileges on 'DB名'.* to 'ユーザ名'@'ホスト名' identified by 'password' with grant option;

解決策② ホスト名がRDSの場合

mysql -u 'RDSユーザ名' -p -h XXXXXXXXXX.ap-northeast-1.rds.amazonaws.com
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SQL(データの追加、更新、削除)とNode.js基本

○データの追加

qiita.js
insert into テーブル名 カラム名
values (カラム名)

↑テーブルにレコードを挿入したいときはinsertを使う。

○データの更新

qiita.js
update テーブル名
set カラム名='新しい値', カラム名='新しい値'
where 条件

↑テーブルのレコードを更新したいときはupdateを使う。
※whereで更新するレコードを指定しないとカラム内の全データが更新される。
※update実行後はデータを戻すことができない

○データの削除

qiita.js
delete from テーブル名
where 条件

↑テーブルからレコードを削除したいときはupdateを使う。
※whereで削除するレコードを指定しないとテーブル内の全レコードが削除されてしまう。

○Node.jsとは?

・Node.jsは本来クライアント側の言語であるJavaScriptをサーバーサイドで動かすための仕組み。

expressとは?

・ExpressはNode.jsでWebアプリの開発をするためのフレームワーク。

ページの表示の仕組み

qiita.js
app.get ('URL', (req, res) => {
  res.render('ファイル名')
});

↑URLにリクエストが来た時に、ファイル名を表示することができる。

EJSとは?

・EJSとは、HTMLとJavaScriptのコード両方を記述できるNode.jsのパッケージ

・JavaScriptのコードを記述するには、<% %>または<%= %>で囲む。
<% %>で囲んだ場合はブラウザに何も表示されないので、変数の定義などに用いる。変数の値などをブラウザに表示したい場合は<%= %>を用いる。

MySQLとは?

・MySQLとは、データベースを管理するツールの一つ。

qiita.js
const mysql = require('mysql')

↑上記のようなコードでmysqlパッケージを読み込むことができる。

クエリの実行

qiita.js
connection.query('クエリ', クエリ実行後の処理)

↑Node.jsからデータベースに対してクエリを実行することができる。
・クエリ実行後の処理は2つの引数を取ることができる。
第1引数のerrorにはクエリが失敗したときのエラー情報が、第2引数のresultsにはクエリの実行結果が入る。

getとpost

・画面を表示したいときはget、データベースを変更したいときはpost

リダイレクトとは

qiita.js
res.redirect('URL')

↑サーバーは「次はこのURLにリクエストしてね」というレスポンスを返すことができる。このレスポンスを受け取ったブラウザは指定されたURLに自動的にリクエストする。このような別のURLに再度リクエストさせる仕組みを「リダイレクト」と言う。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む