iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql删除root用户的方法是什么
  • 553
分享到

mysql删除root用户的方法是什么

2024-04-02 19:04:59 553人浏览 独家记忆
摘要

本文小编为大家详细介绍“Mysql删除root用户的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql删除root用户的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起

本文小编为大家详细介绍“Mysql删除root用户的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql删除root用户的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

mysql删除root用户的方法:1、使用“CREATE USER”语句创建一个与root用户权限一样的用户;2、使用“drop user”语句删除root用户,语法“DROP USER root用户账号”。

mysql删除root用户的方法是什么

教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

删除MySQL的默认root用户

需求分析:

  • root密码在多个地方出现过,比如分享的技术文档,邮件,截图.

  • MySQL默认安装的管理员帐号名称root,众所周知.为了增强安全性,需要更换一个用户名称,例如换成superuser,或者有公司特色的.例如xxx_admin.

应对策略:

  • 首先创建一个与root用户权限一样的用户.

GRANT ALL PRIVILEGES ON *.* TO 'x_admin'@'127.0.0.1' IDENTIFIED BY 'xxxx';
  • 删除默认的root用户.

drop user root@'127.0.0.1';
drop user root@'localhost';
drop user root@'::1';

用户账号:

格式为 user_name'@'host_name。

这里的user_name是用户名,host_name为主机名,即用户连接 MySQL 时所用主机的名字。

如果在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。

注意问题:

1、视图

曾经用root帐号为DEFINER的视图,如果将root删除,将提示该视图无法使用,没有权限.所以要注意提前查看是否存在视图,存在的话,需要修改该视图的DEFINER属性.

修改视图,是瞬间就能完成的操作,除非该视图被其他sql语句占用,处于定的状态.

查看视图

select TABLE_SCHEMA, TABLE_NAME, VIEW_DEFINITioN, DEFINER from infORMation_schema.VIEWS;

修改视图(非root的暂不修改)

ALTER DEFINER=`x_admin`@`127.0.0.1` SQL SECURITY DEFINER VIEW v_name AS...

2、存储过程/函数

情况与视图类似

查看存储过程/视图

select ROUTINE_SCHEMA,ROUTINE_NAME,ROUTINE_TYPE,DEFINER from information_schema.ROUTINES;

或者

select db,name,type,definer from mysql.proc;

修改存储例程,可直接修改mysql.proc

update mysql.proc set definer='x_admin@127.0.0.1'where db='db_name';

如果修改所有库

update mysql.proc set definer='x_admin@127.0.0.1';

2、用root用户连接MySQL的脚本

此类问题比较好解决,可单独为脚本创建帐号用来执行脚本中指定的操作,该用户名可用script_,或者脚本名命名.权限够用就行,不要分配过多的权限.

4、方法:一个增加用户的脚本.(配合批量执行)

#!/usr/bin/python
#-*- coding: UTF-8 -*-
# ########################################################################
# This program
# Version: 2.0.0 (2012-10-10)
# Authors: lianjie.ning@qunar.com
# History:
# ########################################################################

import os
import Socket
import subprocess
import sys
import traceback
from ConfigParser import ConfigParser

class Finger(object):
   'finger.py'

   def __init__ (self):
       print '---- %s, %s' % (socket.gethostname(), self.__doc__)

   def load_config (self, file="finger.ini"):
       if not os.path.exists(file):
           print file,"is not exists, but is created, please fix it"
           temp_ini = '''[conn_db]
login_pwd =
exec_sql =
'''
           open(file, 'w').write(temp_ini)
           os.chmod(file, 0600)
           sys.exit()
       config = ConfigParser()
       config.read(file)
       if config.has_section('conn_db') is True:
           if config.has_option('conn_db', 'login_pwd') is True:
               login_pwd = config.get('conn_db', 'login_pwd')
           if config.has_option('conn_db', 'exec_sql') is True:
               exec_sql = config.get('conn_db', 'exec_sql')
           return (login_pwd, exec_sql)

   def grant_user(self, login_pwd, exec_sql):
       if os.path.exists('/usr/local/bin/mysql'):
           mysql = '/usr/local/bin/mysql'
       elif os.path.exists('/usr/bin/mysql'):
           mysql = '/usr/bin/mysql'
       elif os.path.exists('/bin/mysql'):
           mysql = '/bin/mysql'
       else:
           print "command not fount of mysql"
           sys.exit()

       user = 'xxxx'
       conn_port = [3306,3307,3308,3309,3310]
       for i in conn_port:
           ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
           address = ('127.0.0.1', int(i))
           status = ss.connect_ex(address)
           ss.settimeout(3)
           ss.close()
           if status == 0:
               conn_mysql  = '%s -u%s -p%s -h227.0.0.1 -P%d -N -s -e"%s"' % (mysql, user, login_pwd, i, exec_sql)
               p = subprocess.call(conn_mysql, shell=True, stdout=open("/dev/null"))
               if p == 0:
                   print "---- checking port: %s is NORMAL" % i
               else:
                   print "---- checking prot: %s is ERROR" % i

if __name__ == '__main__':
   try:
       process = Finger()
       (login_pwd, exec_sql) = process.load_config()
       process.grant_user(login_pwd, exec_sql)
   except Exception, e:
       print str(e)
       traceback.print_exc()
       sys.exit()

读到这里,这篇“mysql删除root用户的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql删除root用户的方法是什么

本文链接: https://www.lsjlt.com/news/72019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql删除root用户的方法是什么
    本文小编为大家详细介绍“mysql删除root用户的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql删除root用户的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • mysql删除用户的方法是什么
    这篇文章主要介绍了mysql删除用户的方法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql删除用户的两种方法:一、使用dro...
    99+
    2024-04-02
  • MySQL误删除root用户或root权限怎么办
    这篇文章主要讲解了“MySQL误删除root用户或root权限怎么办”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL误删除root用户或root权限...
    99+
    2024-04-02
  • ubuntu删除mysql的方法是什么
    要在Ubuntu上删除MySQL,可以使用以下命令: 确保MySQL服务器已经停止运行: sudo service mysql ...
    99+
    2024-04-24
    ubuntu mysql
  • mysql删除索引的方法是什么
    要删除 MySQL 数据库中的索引,可以使用以下 SQL 命令: DROP INDEX index_name ON table_na...
    99+
    2024-04-09
    mysql
  • oracle删除表空间及用户的方法是什么
    要删除一个表空间和其关联的用户,可以按照以下步骤进行操作: 首先,登录到Oracle数据库中,使用sysdba权限登录。 确...
    99+
    2024-04-09
    oracle
  • 在mysql中删除用户的命令是什么
    mysql 中删除用户的命令为 drop user 'username',其中 'username' 为要删除的用户名。使用前应撤销用户权限,删除操作永久且无法撤销。 MySQL 中删...
    99+
    2024-05-01
    mysql
  • MySQL删除数据库的方法是什么
    本篇内容介绍了“MySQL删除数据库的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、drop命令删除数据库使用普通用户登陆 M...
    99+
    2023-07-06
  • MySQL删除数据表的方法是什么
    要删除一个 MySQL 数据表,可以使用 DROP TABLE 语句。具体方法如下: DROP TABLE table_name; ...
    99+
    2024-05-08
    mysql
  • mysql删除整个表的方法是什么
    删除MySQL数据库中的整个表可以使用DROP TABLE语句。这个语句将完全删除指定的表,包括其中的所有数据和表结构。 删除单个...
    99+
    2024-04-12
    mysql
  • MySQL删除表数据的方法是什么
    要删除表数据,可以使用以下两种方法: 使用DELETE语句删除表中的数据,但保留表结构: DELETE FROM tab...
    99+
    2024-04-09
    MySQL
  • MySQL误删root用户怎么恢复
    本篇内容介绍了“MySQL误删root用户怎么恢复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个朋友在...
    99+
    2024-04-02
  • mysql删除外键约束的方法是什么
    要删除MySQL中的外键约束,可以使用ALTER TABLE语句,并使用DROP FOREIGN KEY子句,具体步骤如下: 首先...
    99+
    2024-04-09
    mysql
  • 删除nodejs的方法是什么
    本篇内容介绍了“删除nodejs的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Ubuntu开启root用户权限的方法是什么
    在Ubuntu中,默认情况下是禁用root用户的,但可以通过以下方法开启root用户权限: 使用sudo命令:sudo命令可以临...
    99+
    2023-10-23
    Ubuntu
  • MySQL删除方法delete、truncate、drop的区别是什么
    本文小编为大家详细介绍“MySQL删除方法delete、truncate、drop的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL删除方法delete、truncate、dr...
    99+
    2024-04-02
  • mysql删除库中所有表的方法是什么
    要删除 MySQL 数据库中的所有表,可以通过以下步骤来实现: 登录到 MySQL 数据库:使用适当的工具(如命令行、phpMyA...
    99+
    2024-04-09
    mysql
  • postgresql删除表的方法是什么
    要在 PostgreSQL 中删除整个表,您可以使用 DROP TABLE 语句。以下是一个示例: DROP TABLE table...
    99+
    2024-04-09
    postgresql
  • sqlserver删除表的方法是什么
    在SQL Server中,删除表的基本方法是使用DROP TABLE语句。这个命令会从数据库中完全移除指定的表及其数据,因此在执行之...
    99+
    2024-04-09
    sqlserver
  • sqlite删除表的方法是什么
    在SQLite中,如果你想删除一个表,可以使用DROP TABLE语句。这个命令会移除表结构及其包含的所有数据。请注意,执行这个操作...
    99+
    2024-04-10
    sqlite
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作