刚用root创建数据库时如何解决“ root被拒绝访问全新数据库”

时间:2019-06-11 17:58:34

标签: c# mysql phpmyadmin

我正在尝试动态创建数据库以自动化我的任务之一,能够创建数据库并创建用户,但是一旦我尝试通过root授予该用户权限,它就会给我“拒绝用户'root'@'myip'进入数据库'mydb'。”

我尝试过刷新权限,忽略权限,将通配符添加到主机,提供直接主机。

        connString = "SERVER='myserver.com';PORT=3306;UID=root;password='myrootpassword'";
        try
        {
            conn = new MySqlConnection();
            conn.ConnectionString = connString;
            conn.Open();
            MessageBox.Show("Connection Successful");
            MySqlCommand command = new MySqlCommand(string.Format(@"CREATE DATABASE 'myServerPrefix'_{0}_db;", txtSubdomain.Text), conn);
            command.ExecuteNonQuery();
            dbName = txtDatabase.Text = string.Format("'myServerPrefix'{0}_db", txtSubdomain.Text);
            string password = GetRandomAlphanumericString(16);
            Console.WriteLine(password);
            command = new MySqlCommand(string.Format(@"CREATE USER ''myServerPrefix'_{0}_usr' IDENTIFIED BY '{1}';", txtSubdomain.Text, password), conn);
            command.ExecuteNonQuery();
            dbUser = txtUser.Text = string.Format("'myServerPrefix'_{0}_usr", txtSubdomain.Text);
            dbPassword = txtPass.Text = password;
            command = new MySqlCommand(@"FLUSH PRIVILEGES", conn);
            command.ExecuteNonQuery();
            command = new MySqlCommand(string.Format(@"grant all privileges on {0}.* to {1}@'myIp' identified by '{2}';@';", dbName, dbUser, password), conn);
            command.ExecuteNonQuery(); //Fails with this command.
            conn.Close();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

预期结果是,应使用对该特定数据库具有完全权限的用户来创建数据库,实际结果是正在创建数据库,已创建用户以及错误消息,指出:

  

拒绝访问用户'root'@'myIp'到数据库'myDb'。

问题很可能是我的睡眠不足的大脑试图强行进入解决方案,我希望我只是错误地格式化了命令,并且解决方案很简单,但是我可以从中获得任何帮助问题将不胜感激。

0 个答案:

没有答案