【Django】CentOS上でPythonをインストールしたものの、SQLiteのバージョンが古いとエラーが出てしまう場合の対応

カテゴリ:Django 投稿:2022年6月2日23:23、更新:2022年7月7日1:09

・記事の概要 

CentOS上でSQLite 3.9.0 or later is requiredが発生してしまった場合の解消手順を記載します。


・この記事の対象 

CentOS7上でDjangoを動作させようとすると、以下のようなSQLiteのエラーが発生してしまった方。

  1. 'SQLite 3.9.0 or later is required (found %s).' % Database.sqlite_version
  1. django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).


・この記事でできるようになること 

上記エラーの解消をしていきます。

結論で言うと、SQLiteではなくMariaDB(MySQL互換のDB)に切り替えて利用します。


・実際の手順 

①必要となるパッケージをインストール

以下より関連パッケージのインストールをしてください。

sudo yum install mariadb mariadb-server


②my.cnfを編集

sudo vi /etc/my.cnf


で設定ファイルを編集し、[mysql]に以下を追記してください。

[mysqld]

character-set-server=utf8

上記対応後にmariadbの起動と自動起動化をしておきましょう。

sudo systemctl start mariadb

sudo systemctl enable mariadb


③mysqlのインストール時セキュリティ向上

以下をコマンド実行します。

sudo mysql_secure_installation

Enter current password for root (enter for none):

上記のように「rootのパスワードを設定してね」と言われますのでrootパスワードを入力しEnter。

その後も

Change the root password? [Y/n]

Remove anonymous users? [Y/n]

Disallow root login remotely? [Y/n]

Remove test database and access to it? [Y/n]

Reload privilege tables now? [Y/n]

など聞かれますが、全てYES(Y)でいいです。


④firewallのポート開放と更新

以下をコマンド実行しmysqlのポートを開け、設定を反映させます。

sudo firewall-cmd  --add-service=mysql --permanent

sudo firewall-cmd --reload


⑤rootでログインをしてDB作成(create datebase)

以下をコマンド実行しmysqlのポートを開け、設定を反映させます。

sudo mysql -u root -p

で③設定のパスワードを入れて、mysqlにログインし

create database hoge;

でDBを作成します。(hogeは任意のDB名)

show databases;で作成されて作成されているかを見てみても良いです。



⑥mysqlclientの準備

以下をコマンド実行し必要パッケージなどをインストールします。

yum install python3-devel mysql-devel

pip install mysqlclient


⑦setting.pyの編集

setting.pyにDATABASESを以下のように追記します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sample', # 作成したデータベース名
        'USER': 'hoga', # ログインユーザー名
        'HOST': '111.111.111.111', #サーバのIP
        'PORT': '',
    }
}


・まとめ 

いかがだったでしょうか。

上記対応後に元々実施したかったことを試してみて下さい。SQLiteのエラーのエラーが発生することなくできていれば幸いです。


またPythonなどのプログラミング言語を習得する際には、以下のようなオンライン学習(動画学習)サービスがオススメです!

リンク先にシリコンバレーエンジニアが講師で、基礎から応用までPythonを学習できる講義を紐づけています。

動画の解説を見て、手を実際に動かして、効率化技術を習得しましょう!


コメント一覧

コメント投稿ページへ


書いている人

のぎ
PG->SE->PMとして働き、現在はIT企業で新卒採用の担当をしています。長期育休取得明けで0歳娘の対応に毎日バタバタです。笑
採用業務をしつつ社内利用ツールなど作成しており、当ブログも勉強の一環でコーディングして作成しています。 エンジニア領域、人事・採用領域、育児関連など発信していきます。