20210114のMySQLに関する記事は2件です。

Node.jsとMySQLの接続方法

mysqlモジュールをインストールする

Node.jsでMySQLに接続するには、mysqlモジュールを使います。
以下のコマンドを実行してインストールします。

$ npm install mysql

MySQLに接続する

MySQLを操作するjsファイルに追記していきます。
今回はMySQLを操作するjsファイルを main.js とします。
main.js に以下を追加して、mysqlのモジュールをインポートします。

main.js
const mysql = require('mysql');

次に、 createConection メソッドで、使用するMySQLのデータベースとの接続の指定をし、 connection を作成します。(MySQLでデータベースを作成しておきましょう。)

main.js
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'database-name'
});

クエリを実行する

データベースからデータを引出します。
例えば以下のようになります。

main.js
connection.query(
    'SELECT * FROM database-name',
    (error, results) => {
      res.render('list.ejs', { databaseーname: results });
    }
  );

MySQLとの接続を切る

最後に end メソッドで connection によるMySQLとの接続を切ります。

main.js
connection.end();
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

** (MyXQL.Error) (1406) (ER_DATA_TOO_LONG) Data too long for columnが発生した場合に2つ確認する

1. Aliasを書き忘れていないか。

Sample |> Repo.all()

これを書くなら、defmodule内に下記のようなaliasを記述していなければいけない。

alias Project.Context.Sample

2. DBの文字コード

例えばMySQLと、クエリで文字コードが異なると発生する。
その場合、MySQLの文字コードをutf8にする。

MySQLのmy.cnf[mysqld]直下でutf8を指定する記述をします。

[mysqld]
## UTF 8 Settings
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake

確認します。

mysql> show variables like '%char%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

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