![](/img/trans.png)
[英]CommandError: You appear not to have the 'psql' program installed or on your path
[英]python: CommandError: You appear not to have the 'mysql' program installed or on your path
我正在为 Django 应用程序开发 Mysql 数据库,因此我创建了一个名为 maison 的数据库,将 settings.py 配置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'maison',
'USER': 'root',
'PASSWORD': '1234',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
并验证我的数据库是否已连接到我的应用程序,我运行命令python manage.py dbshell
但它抛出该错误:
CommandError:您似乎没有安装“mysql”程序或在您的路径上。
虽然我已经安装了所有要求:
你有什么想法来解决这个错误吗?
按照代码,Django 只是运行控制台应用程序mysql 。 尝试在没有 Django 的情况下从控制台调用它。 也许它没有安装,不在 PATH 环境变量中或尚未在 PATH 环境变量中(如果有rehash命令,请尝试重新哈希命令或控制台重新登录)。
class DatabaseClient(BaseDatabaseClient):
executable_name = 'mysql'
@classmethod
def settings_to_cmd_args(cls, settings_dict):
args = [cls.executable_name]
db = settings_dict['OPTIONS'].get('db', settings_dict['NAME'])
user = settings_dict['OPTIONS'].get('user', settings_dict['USER'])
passwd = settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD'])
host = settings_dict['OPTIONS'].get('host', settings_dict['HOST'])
port = settings_dict['OPTIONS'].get('port', settings_dict['PORT'])
cert = settings_dict['OPTIONS'].get('ssl', {}).get('ca')
defaults_file = settings_dict['OPTIONS'].get('read_default_file')
# Seems to be no good way to set sql_mode with CLI.
if defaults_file:
args += ["--defaults-file=%s" % defaults_file]
if user:
args += ["--user=%s" % user]
if passwd:
args += ["--password=%s" % passwd]
if host:
if '/' in host:
args += ["--socket=%s" % host]
else:
args += ["--host=%s" % host]
if port:
args += ["--port=%s" % port]
if cert:
args += ["--ssl-ca=%s" % cert]
if db:
args += [db]
return args
def runshell(self):
args = DatabaseClient.settings_to_cmd_args(self.connection.settings_dict)
subprocess.check_call(args)
mysql-client 路径可能未添加到您的机器中。
对于 linux 请执行以下命令行:
echo 'export PATH=/usr/local/opt/mysql-client/bin:$PATH' >> ~/.bash_profile
如果是windows系统请在环境中添加mysql-client路径。
尝试运行python manage.py shell
,它对我python manage.py shell
,我认为它也对你有用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.