Pythonからmysqlを操作したい.
文字通り,Pythonからmysqlを操作したい.
どのドライバにするか迷ったが,今回はpython3からもアクセスできる&環境構築が簡単そうなmysql-connector-python-rfを用いることにする.
−環境
MacOS High Sierra 10.13.5
Python 3.6.1
pipでインストールできた.
pip install mysql-connector-python-rf
以下の記事通りにインストールを試みた.
https://qiita.com/hoto17296/items/0cfe7cdd3c47b69cc892
しかし,mysqlのアクセスのところで,
”authentication plugin 'caching_sha2_password' is not supported”のエラーが発生.
Mysqlのデフォルトのpluginがcaching_sha2_passwordとなっており,これは,mysql-connector-python-rfのドライバには対応していないことが判明した.なので,作成するユーザーのpluginの設定を変更して,ユーザーを作成することにする.
root でログインする.
mysql -u root -p
user1というユーザーを作成する.
create user ‘user1’@‘localhost' identified with mysql_native_password by 'user1_Password';
Query OK, 0 rows affected (0.09 sec)
”with mysql_native_password”をつけることで,pluginを変更してエラーを対処することができた.
user1に全権限を付与する.
grant all on *.* to 'user1'@'localhost';
rootからログアウトする.
exit
user1でログインする.
mysql -u user1 -p
現在の権限を確認する.
show grants;
———————————————————————————————+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON . TOuser1
@localhost
|
| GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON . TOuser1
@localhost
設定が反映され,全権限が付与されている.
こうすることで
import mysql.connector
conn = mysql.connector.connect(
auth_plugin='mysql_native_password',
host = 'localhost',
port = 3306,
user = 'user1',
password = 'user1_Password',
database = 'twitteruser1',
)
cur = conn.cursor()
print(conn.is_connected())
のスクリプトが実行可能となった.
何も考えずに,ユーザに全権限を付与することはあまり好ましくないかもしれないが,今はローカル環境なので,とりあえず許すことにする.
また,databaseの作り方などの,基本的な操作方法について,次の記事で更新したのでそちらもよろしければ.
https://qiita.com/kotaaaa/items/84beefa8e8684cae3f99
アドバイス,コメント等あれば,ぜひよろしくお願いします.
参考
https://www.s-style.co.jp/blog/2018/05/1807/
https://qiita.com/hoto17296/items/0cfe7cdd3c47b69cc892
Author And Source
この問題について(Pythonからmysqlを操作したい.), 我々は、より多くの情報をここで見つけました https://qiita.com/kotaaaa/items/044c5bc655ba11a0d722著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .