站長資訊網
        最全最豐富的資訊網站

        mysql數據庫的超級管理員名稱是什么

        mysql數據庫的超級管理員名稱是“root”。MySQL在安裝時,會默認創建一個名為root的用戶,該用戶擁有超級權限,可以控制整個MySQL服務器。root用戶擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他用戶的密碼。

        mysql數據庫的超級管理員名稱是什么

        本教程操作環境:windows7系統、java8版、DELL G3電腦。

        mysql數據庫的超級管理員名稱是“root”。

        MySQL 在安裝時,會默認創建一個名為 root 的用戶,該用戶擁有超級權限,可以控制整個 MySQL 服務器。

        在對 MySQL 的日常管理和操作中,為了避免有人惡意使用 root 用戶控制數據庫,我們通常創建一些具有適當權限的用戶,盡可能地不用或少用 root 用戶登錄系統,以此來確保數據的安全訪問。

        一般root超級管理員的權限會比一般用戶的權限大很多,所以有些操作要root權限才能運行。

        root 用戶擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他用戶的密碼。

        MySQL修改root密碼

        在 MySQL 中,root 用戶擁有很高的權限,因此必須保證 root 用戶密碼的安全。修改 root 用戶密碼的方式有很多種,本節將介紹幾種常用的修改 root 用戶密碼的方法。

        • 修改MySQL數據庫的user表

        因為所有賬戶信息都保存在 user 表中,因此可以直接通過修改 user 表來改變 root 用戶的密碼。

        root 用戶登錄到 MySQL 服務器后,可以使用 UPDATE 語句修改 MySQL 數據庫的 user 表的 authentication_string 字段,從而修改用戶的密碼。

        使用 UPDATA 語句修改 root 用戶密碼的語法格式如下:

        UPDATE mysql.user set authentication_string = PASSWORD ("rootpwd) WHERE User = "root" and Host="localhost";
        登錄后復制

        新密碼必須使用 PASSWORD() 函數來加密。執行UPDATE語句后,需要執行FLUSH PRIVILEGES語句重新加載用戶權限。

        • 使用SET語句修改root用戶的密碼

        SET PASSWORD 語句可以用來重新設置其他用戶的登錄密碼或者自己使用的賬戶的密碼。使用 SET 語句修改密碼的語法結構如下:

        SET PASSWORD = PASSWORD ("rootpwd");
        登錄后復制

        MySQL root修改普通用戶密碼

        • 使用SET語句修改普通用戶的密碼

        在 MySQL 中,只有 root 用戶可以通過更新 MySQL 數據庫來更改密碼。使用 root 用戶登錄到 MySQL 服務器后,可以使用 SET 語句來修改普通用戶密碼。語法格式如下:

        SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');
        登錄后復制

        其中,username 參數是普通用戶的用戶名,hostname 參數是普通用戶的主機名,newpwd 是要更改的新密碼。

        注意:新密碼必須使用 PASSWORD() 函數來加密,如果不使用 PASSWORD() 加密,也會執行成功,但是用戶會無法登錄。

        如果是普通用戶修改密碼,可省略 FOR 子句來更改自己的密碼。語法格式如下:

        SET PASSWORD = PASSWORD('newpwd');
        登錄后復制

        示例 1

        root 用戶登錄 MySQL 服務器后,再使用 SET 語句將 testuser 用戶的密碼修改為“newpwd”,SQL 語句和運行結果如下:

        mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd"); Query OK, 0 rows affected, 1 warning (0.01 sec)
        登錄后復制

        由運行結果可以看出,SET 語句執行成功,testuser 用戶的密碼被成功設置為“newpwd”。

        • 使用UPDATE語句修改普通用戶的密碼

        使用 root 用戶登錄 MySQL 服務器后,可以使用 UPDATE 語句修改 MySQL 數據庫的 user 表的 authentication_string 字段,從而修改普通用戶的密碼。UPDATA 語句的語法如下:

        UPDATE MySQL.user SET authentication_string = PASSWORD("newpwd") WHERE User = "username" AND Host = "hostname";
        登錄后復制

        其中,username 參數是普通用戶的用戶名,hostname 參數是普通用戶的主機名,newpwd 是要更改的新密碼。

        注意,執行 UPDATE 語句后,需要執行 FLUSH PRIVILEGES 語句重新加載用戶權限。

        示例 3

        使用 root 用戶登錄 MySQL 服務器,再使用 UPDATE 語句將 testuser 用戶的密碼修改為“newpwd2”的 SQL 語句和運行結果如下:

        mysql> UPDATE MySQL.user SET authentication_string = PASSWORD ("newpwd2")     -> WHERE User = "testuser" AND Host = "localhost"; Query OK, 1 row affected, 1 warning (0.07 sec) Rows matched: 1  Changed: 1  Warnings: 1 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.03 sec)
        登錄后復制

        由運行結果可以看出,密碼修改成功。testuser 的密碼被修改成了 newpwd2。使用 FLUSH PRIVILEGES 重新加載權限后,就可以使用新的密碼登錄 testuser 用戶了。

        刪除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 -h127.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()
        登錄后復制

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 全国精品一区二区在线观看| 精品精品国产高清a毛片牛牛| 99精品在线观看| 国产l精品国产亚洲区在线观看| 久久精品国产亚洲AV嫖农村妇女| 国产欧美日韩精品a在线观看| 91精品国产综合久久婷婷| 亚洲国产精品一区二区第一页免| 麻豆亚洲AV永久无码精品久久| 国产91久久精品一区二区| 亚洲国产精品无码久久SM| 孩交VIDEOS精品乱子| 亚洲午夜精品久久久久久浪潮| 99久久人妻无码精品系列 | 亚洲无删减国产精品一区| 国内精品久久久久久久影视麻豆 | 伊人久久大香线蕉精品| 2020久久精品国产免费| 日韩精品乱码AV一区二区 | 午夜成人精品福利网站在线观看| 无码精品久久久久久人妻中字| 91麻豆国产福利精品| 亚洲精品蜜桃久久久久久| 亚洲精品天堂成人片?V在线播放| 日韩精品中文字幕第2页| 久久亚洲国产成人精品无码区| 久久精品国产亚洲AV高清热| 亚洲午夜精品第一区二区8050| 亚洲精品二三区| 亚洲综合精品香蕉久久网| 丰满人妻熟妇乱又仑精品| 日韩精品无码一区二区三区免费 | 国内精品51视频在线观看| 国产精品手机在线| 亚洲精品国精品久久99热一| 四虎成人精品国产永久免费无码| 全国精品一区二区在线观看| 亚洲国产精品一区二区三区久久| 手机日韩精品视频在线看网站| 中文字幕亚洲精品无码| 欧美午夜精品久久久久免费视|