カテゴリ:Django 投稿:2022年6月2日23:23、更新:2022年7月7日1:09
・記事の概要
CentOS上で「
SQLite 3.9.0 or later is required」が発生してしまった場合の解消手順を記載します。・この記事の対象
CentOS7上でDjangoを動作させようとすると、以下のようなSQLiteのエラーが発生してしまった方。
- 'SQLite 3.9.0 or later is required (found %s).' % Database.sqlite_version
- 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を学習できる講義を紐づけています。
動画の解説を見て、手を実際に動かして、効率化技術を習得しましょう!
コメント一覧
コメント投稿ページへ