少し複雑なWebサイトは、データ交換なしでは実行できません。Djangoを使用して開発する場合は、データベースを構成する必要があります。mysqlデータベースを選択するときに、djangoとmysqlが正常に「通信」してデータを交換する場合は、ブリッジが必要です。 -mySQLdb、前夜にコンピューターのubuntuシステムをアップグレードした後(14.04LTSバージョンから16.04LTSに)、コンピューター上の前のプロジェクトがpython manage.pyrunserverコマンドの実行後にエラーを報告しました。エラーメッセージはdjango.core.exceptionsでした。不適切に構成:MySQLdbモジュールのロード中にエラーが発生しました:libmysqlclient.so.18:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません。
次に、BaiduはStackoverflowでの検索を含む解決策を探しました。ほとんどの記事では、MySQLdbがインストールされていない可能性があると述べていたので、MySQLdbをインストールしましたが、システムはインストールされていることを通知し、次のようなメッセージが表示されます。要件はすでに満たされています(--upgradeを使用)アップグレードするには):MySQL-python == 1.2.3 in /usr/local/lib/python2.7/dist-packages
これは、システムにMySQL-pythonがあることを意味しますが、なぜエラーが報告されるのですか?長い間考えた後、アンインストールして再インストールすることを考えたところ、問題は解決しました(笑、アーティファクト、実際、これがなぜなのか理解できませんでした。システムに関連している可能性があります。システムをアップグレードした後、以前のいくつかのことがうまくいかない可能性があります中古)。
以前のubuntu14.04LTSバージョンにMySQLdbをインストールするときに、多くの問題が発生しました。今日ここに要約します。これらは通常発生する問題であり、将来さらに発生する可能性があります。必要に応じてゆっくりと追加してください。友達は以下を参照することができます(不規則性ですが、私にアドバイスを与えることも望んでいます)。
インストールは非常に簡単です。pythoneer、virtualenv、fabric、pipの3つの主要なアーティファクトがある場合(python開発者の場合は、最後にインストールしてください。これら3つのツールは確かに非常に強力です。ここではなくインターネットにインストール方法があります。はじめに)、MySQLdbのインストールは非常に簡単で、1つのコマンドを解決できます。
pip install MySQL-python
バージョンを指定したい場合は、これを行うことができます
pip install MySQL-python==1.2.3
インストールできない場合(pipが正常にインストールされ、使用できることを前提としています)、権限の問題である可能性があります。このとき、pipの前にsudoを追加してください。
しかし、これで大丈夫だと思いますか?これは、Windowsシステムでは問題ないかもしれませんが、ubuntuシステムでは問題ありません。いくつかの依存関係パッケージが必要です。インストールコマンドは次のとおりです。
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
次に、MySQLdbをインポートします。エラーが報告されない場合、インストールは成功しています。
(1)エラー:mysql_configが見つかりません
解決策:mysqld-devパッケージをインストールします。インストールコマンドには
(2)エラー:_mysql.c:2810:エラー:「init_mysql」の前に宣言指定子が必要です
解決策:python-devをインストールします
(3)エラー:ImportError:setuptoolsという名前のモジュールがありません
解決策:setuptoolsをインストールします
sudo apt-get install python-setuptools
(4)エラー1193、「不明なシステム変数 'storage_engine'
djangoのデータベース構成またはmysql構成ファイルに関連している可能性があります。
データベース構成に文を追加します。
' OPTIONS': {
'init_command': 'SET default_storage_engine=INNODB',
},
あなたは問題を解決することができます。
MySQL5.5以降、デフォルトのデータベースストレージエンジンはinnodであり、バージョン5.7を使用し、以前の構成は
' OPTIONS': {
'init_command': 'SET storage_engine=MyISAM',
},
エラーが発生するため、変更する方法は2つあります。1つはdjango設定ファイルを変更する方法、もう1つはmysql構成ファイルetc / mysql / my.cnfを変更する方法、文SET default_storage_engine = MyISAMを追加する方法ですが、どのように変更しても、両方一貫している必要があります。
Recommended Posts