在Python Django中使用mysqlclient时的数据库命令执行困惑
解决Django教程中MySQL Shell命令执行问题
Hey there! Let's work through this issue step by step—you're closer than you think.
先搞清楚:教程里的"mysql shell"指的是什么?
教程提到的mysql shell并不是你下载的那个MySQL Shell工具(那个是MySQL推出的新一代交互式工具,默认用JavaScript/Python模式),而是指MySQL自带的原生SQL命令行客户端。
方法一:用MySQL原生命令行客户端执行SQL语句
这是最直接的方式:
- 找到你的MySQL安装目录下的
bin文件夹,比如默认路径可能是C:\Program Files\MySQL\MySQL Server 8.0\bin - 可以直接在这个文件夹里右键打开命令提示符(cmd),或者把这个
bin路径添加到系统环境变量里(这样以后在任意cmd窗口都能直接调用) - 输入以下命令登录MySQL(用你的root账号和密码):
mysql -u root -p - 输入root密码后,你会进入MySQL的命令行界面(提示符变成
mysql>),这时就可以执行教程里的三条SQL语句了,注意每条结尾要加分号;:CREATE USER 'pythoncentral'@'localhost' IDENTIFIED BY '12345'; CREATE DATABASE myblog; GRANT ALL ON myblog.* TO 'pythoncentral'@'localhost'; # 可选但推荐:刷新权限让设置立即生效 FLUSH PRIVILEGES; - 执行完后可以输入
exit;退出MySQL命令行。
方法二:用你下载的MySQL Shell执行SQL
如果你想用已经安装的MySQL Shell,需要切换到SQL模式:
- 打开MySQL Shell,默认你会看到
JS>提示符(JavaScript模式) - 输入
\sql切换到SQL模式,提示符会变成SQL> - 连接到本地MySQL服务:
\connect root@localhost - 输入root密码后,就可以执行那三条SQL语句了,同样每条结尾加分号:
CREATE USER 'pythoncentral'@'localhost' IDENTIFIED BY '12345'; CREATE DATABASE myblog; GRANT ALL ON myblog.* TO 'pythoncentral'@'localhost'; FLUSH PRIVILEGES;
为什么python -m mysql会报错?
别担心,这是正常的:mysqlclient只是Django用来连接MySQL的驱动库,它不是一个可以直接通过python -m调用的命令行工具。这些创建用户和数据库的操作不需要通过Python执行,直接用MySQL的客户端工具完成就好。
内容的提问来源于stack exchange,提问作者P. Dias
相关产品推荐
相关产品推荐

