Python 拒绝用户root的访问

Python 拒绝用户root的访问,python,mysql,Python,Mysql,我使用Python而不是sudo。然而,我得到了 mysql -u root -pPAssw0rd -e "create database orthomcl" ERROR 1698 (28000): Access denied for user 'root'@'localhost' 下面是脚本如何尝试创建数据库 if 3 in stages_to_do: # Set up database command = 'mysql -u root -pPAssw0rd -e "crea

我使用Python而不是sudo。然而,我得到了

mysql -u root -pPAssw0rd -e "create database orthomcl"
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
下面是脚本如何尝试创建数据库

if 3 in stages_to_do:
    # Set up database
    command = 'mysql -u root -pPAssw0rd -e "create database orthomcl"'
    print(command)
    os.system(command)
    command = 'orthomclInstallSchema ' + config_file + ' orthomclInstallSchema_sql.log'
    print(command)
    os.system(command)
如何解决拒绝访问错误


提前感谢

如果要使用root用户在localhost中输入数据库,则需要使用超级用户权限(sudo)执行该命令。您可以使用sudo运行python文件,也可以将命令更改为
'sudo mysql-u root-pPAssw0rd-e“create database orthomcl”
您必须在某个时候以任何一种方式输入sudo密码。

如果您想使用root用户在localhost中输入数据库,则需要使用超级用户权限(sudo)执行该命令。您可以使用sudo运行python文件,也可以将命令更改为
'sudo mysql-u root-pPAssw0rd-e“create database orthomcl”
您必须在某个时候输入sudo密码。

谢谢,是否可以创建一个非root用户并在没有sudo的情况下运行脚本?@user977828 yes,为此,您需要通过终端以root用户身份登录数据库,然后输入
CREATE USER'newuser'@'localhost'以“password”标识。如果希望该用户能够管理数据库,则需要向其授予一些权限。这是我刚在网上找到的一本指南:。我希望这对你有帮助。这是误导。系统根目录与MySQL根目录完全不同。使用sudo运行MySQL客户端的理由很少。@RoryBrowne它们确实是不同的东西,但是默认情况下,您确实需要sudo以root身份输入数据库(至少对于mariadb或MySQL)。我完全确定这一点,因为我的计算机中运行着一个mariadb数据库,它不会让我以root身份进入,除非我用sudo执行命令,即使我为数据库键入了正确的密码。我之前的评论似乎已经过时,@Asriel是正确的。MariaDB的默认安装现在使用auth_套接字身份验证机制,该机制通过检查哪个用户连接到unix套接字来检查哪个用户在本地连接。谢谢,是否可以创建一个非root用户并在没有sudo的情况下运行脚本?@user977828 yes,为此,您需要通过终端以root用户身份登录数据库,然后输入
CREATE USER'newuser'@'localhost'以“password”标识。如果希望该用户能够管理数据库,则需要向其授予一些权限。这是我刚在网上找到的一本指南:。我希望这对你有帮助。这是误导。系统根目录与MySQL根目录完全不同。使用sudo运行MySQL客户端的理由很少。@RoryBrowne它们确实是不同的东西,但是默认情况下,您确实需要sudo以root身份输入数据库(至少对于mariadb或MySQL)。我完全确定这一点,因为我的计算机中运行着一个mariadb数据库,它不会让我以root身份进入,除非我用sudo执行命令,即使我为数据库键入了正确的密码。我之前的评论似乎已经过时,@Asriel是正确的。MariaDB的默认安装现在使用auth_套接字身份验证机制,该机制通过检查哪个用户连接到unix套接字来检查哪个用户在本地连接。