python - 在python中执行mysql命令时出现错误

标签 python mysql radius

我正在编写一个 python3 脚本来自动安装 radius 和 daloradius。 在中间,我收到一些错误。我的代码是:

import subprocess
import os
import sys

# Updating Resources
os.system("sudo apt-get update -y")


#subprocess.call(["apt-get", "install", "freeradius"])

#Installing Radius & Dependencies
print("\n Installing Free Radius ... \n")
os.system("sudo apt-get install freeradius freeradius-mysql -y")
print("\nInstalling  LAMP  ... \n")
os.system("sudo apt-get install mysql-server mysql-client apache2 php5 libapache2-mod-php5 php5-mysql php5-common php5-gd php-pear php-db php-mail -y")
#os.system("sudo apt-get install python-dev libmysqlclient-dev python3-pip")
#os.system("sudo pip3 install mysqlclient")

#Creating A Database for radius server
os.system("mysql -h localhost -uroot -p123 -e 'CREATE DATABASE foo';")
os.system("mysql -h localhost -uroot -p123 -e 'CREATE USER 'radius2'@'localhost' IDENTIFIED BY 'radpass'';")
os.system("mysql -h localhost -uroot -p123 -e 'GRANT ALL PRIVILEGES ON `radius` . * TO 'radius2'@'localhost'';")

我收到错误

os.system("mysql -h localhost -uroot -p123 -e 'CREATE USER 'radius2'@'localhost' IDENTIFIED BY 'radpass'';")

错误是:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'radpass' at line 1

最佳答案

SQL语句中有两个较多的单引号,使用反斜杠转义:

os.system("mysql -hlocalhost -uroot -p123 -e 'CREATE USER \'radius2\'@\'localhost\' IDENTIFIED BY \'radpass\';'")

您可以仅使用一条语句来创建用户并为其授予权限:

GRANT ALL PRIVILEGES ON radius.* TO 'radius2'@'localhost' IDENTIFIED BY 'radpass';

关于python - 在python中执行mysql命令时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041507/

相关文章:

python - python 内置的 open() 函数中的缓冲有什么用?

php - PHP 中的变量表行跨度回显

sockets - 使用 FreeRadius 测试 RADSEC

java - 用于启动和配置多个程序的 Python 脚本

python - 测试套件与 "test discover"

php - 如何在输出中仅包含一次标题的情况下对连接表进行排序

linux - 在软件中实现 802.1x 验证器?

windows-server-2016 - Radius 服务器未回复来自 Meraki AP 的访问请求

python - 值错误: I/O operation on closed file error

mysql - 包括具有零 Count() 值的行