質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.05%

Mac Python環境からalembicでmysqlを繋げたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 428

kozuketec

score 146

前提・実現したいこと

alembicでDBマイグレーションがしたい。
OS:MacOS Mojave 10.14.5

発生している問題・エラーメッセージ

https://pypi.org/project/mysqlclient/
↑に従ってmysqlclientをpipenv isntallしている際に発生。
ここのmysql_configおよびopensslの設定はしている。

brew install mysql-connector-c 
を叩くと以下のエラーになる。

mysqlとmysql-connector-cは共存できないのでしょうか?

Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
atomist-cli                                                                                                                          platformio

Error: Cannot install mysql-connector-c because conflicting formulae are installed.
  mysql: because both install MySQL client libraries

Please `brew unlink mysql` before continuing.

Unlinking removes a formula's symlinks from /usr/local. You can
link the formula again after the install finishes. You can --force this
install, but the build may fail or cause obscure side effects in the
resulting software.


事前にmysqlはbrew install済

この状態で、alembic upgrade headすると。

Traceback (most recent call last):
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/bin/alembic", line 10, in <module>
    sys.exit(main())
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/config.py", line 540, in main
    CommandLine(prog=prog).main(argv=argv)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/config.py", line 534, in main
    self.run_cmd(cfg, options)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/config.py", line 514, in run_cmd
    **dict((k, getattr(options, k, None)) for k in kwarg)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/command.py", line 276, in upgrade
    script.run_env()
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/script/base.py", line 475, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 90, in load_python_file
    module = load_module_py(module_id, path)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/alembic/util/compat.py", line 177, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "alembic-db/env.py", line 75, in <module>
    run_migrations_online()
  File "alembic-db/env.py", line 60, in run_migrations_online
    poolclass=pool.NullPool,
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 478, in engine_from_config
    return create_engine(url, **options)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 435, in create_engine
    return strategy.create(*args, **kwargs)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 87, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 118, in dbapi
    return __import__("MySQLdb")
  File "/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: dlopen(/Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql-connector-c/lib/libmysqlclient.18.dylib
  Referenced from: /Users/kota-ishizuka/.local/share/virtualenvs/kotapypj-_J8aX8wv/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
  Reason: image not found

試したこと

ここに書いている通り、brew unlink mysqlをするとinstallされるが、mysqlコマンドが打てなくなる。

補足情報(FW/ツールのバージョンなど)

Pipfileは以下の通りです。

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
ipython = "==6.2.1"

[packages]
pandas = "*"
selenium = "*"
sqlalchemy = "*"
pytest = "*"
jupyter = "*"
alembic = "*"
django = "*"

[requires]
python_version = "3.7"
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

自己解決しました。

mysqlのバージョンを5.6にdowngradeすることで解決しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る