DockerによるDjango実行環境へMySQLインストール
MySQLをDockerコンテナへインストール
ゲストOSは、Ubuntu18.04
Python3でMySQLに接続するドライバーをインストールする。
pip install PyMySQL
Djangoのmanage.py で、PyMySQLを利用できるように設定
import pymysql
pymysql.install_as_MySQLdb()
MySQLサーバーとクライアントをインストール。
Ubuntuでは、通常両方をインストールする。
apt-get install mysql-server mysql-client
MySQL serverとMySQL clientの機能:
MySQLは、クライアント/サーバーアーキテクチャで、ネットワーク環境で動作する。
MySQL serverは、MySQL clientからの要求を受けてデータベースの入出力を行う。
MySQL client:
MySQL serverに接続できる。
MySQ server:
複数のデータベースをホストし、MySQ clientからのクエリを処理する。
「MySQ」パッケージは、MySQ server、MySQ clientの両方を含んでいる。
リモートサーバーに接続してクエリを実行するだけでよい場合は、MySQ clientだけをインストールする。データベースをホストする必要がある場合は、クライアントとサーバーをインストールする。
MySQLの基本設定
mysql_secure_installation コマンドを実行し、管理者(root)、パスワードなどインストール後の初期設定を行う。基本的には、「y」で進める。
MySQLサービスを起動
$ service mysql start
再起動は、
$ service mysql restart
ローカルコンソールからMySQLサーバーに接続
$ mysql -u root -p
パスワードを入力
MySQLに接続すると、以下のプロンプトが表示される。
mysql >
状態表示
mysql > status
データベース一覧表示
mysql > show databases;
データベース選択
mysql > use データベース名
データベース上に存在するテーブルの確認
mysql > show tables from データベース名;
mysql > show tables from test_db;
テーブルの構造を確認
mysql> desc テーブル名;
mysql> desc hello_friend;
テーブルの一覧表示
mysql> select * from テーブル名;
mysql> select * from hello_friend;
ユーザー一覧表示
mysql > select user,host from mysql.user;
特定のユーザーの権限確認
mysql > show grants for ‘ユーザー名’@’ホスト名’;
中断
mysql > quit
終了
mysql > exit
データベースの作成
mysql > create database ‘データベース名’;
mysql > create database test_db;
ユーザーの作成
mysql > create user ‘ユーザー名’@’ホスト名’ identified by ‘パスワード’;
mysql > create user hanako@localhost identified by ‘password’;
ユーザーにデータベースの操作権限を付与
mysql > grant all privileges on ‘データベース名’.* to ‘ユーザー名’@’ホスト名’ identified by ‘パスワード’;
mysql > grant all privileges on test_db.* to hanako@localhost identified by ‘password’;
MySQLデータベースの文字コードを「utf8」に設定して、日本語入力を可能にする。
文字コードの確認
mysql > status
character_setの確認
mysql> show variables like “chara%”;
ディフォルトだと、
server characterset: latin1
DB characterset: latin1
nano /etc/mysql/mysql.conf.d/mysqld.cnf # nanoエディターで編集。
nanoエディターは事前にUbuntu環境にインストールしておく
[mysqld]セクションに下記の行を追加する。
character-set-server = utf8
default_password_lifetime = 0 # パスワード設定期間を無期限にする。
lower_case_table_names = 1 # 大文字、小文字を区別しない。
その他ツールの文字コードをutf8にする。
nano /etc/mysql/conf.d/mysqldump.cnf
[mysqldump]セクションに下記行を追加する。
default=character-set = utf8
nano /etc/mysql/conf.d/mysql.cnf
[mysql] セクションに下記行を追加する。
default=character-set = utf8