本文小編為大家詳細(xì)介紹“MySQL刪除root用戶(hù)的方法是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“mysql刪除root用戶(hù)的方法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
“只有客戶(hù)發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
mysql刪除root用戶(hù)的方法:1、使用“CREATE USER”語(yǔ)句創(chuàng)建一個(gè)與root用戶(hù)權(quán)限一樣的用戶(hù);2、使用“drop user”語(yǔ)句刪除root用戶(hù),語(yǔ)法“DROP USER root用戶(hù)賬號(hào)”。

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
刪除MySQL的默認(rèn)root用戶(hù)
需求分析:
root密碼在多個(gè)地方出現(xiàn)過(guò),比如分享的技術(shù)文檔,郵件,截圖.
MySQL默認(rèn)安裝的管理員帳號(hào)名稱(chēng)root,眾所周知.為了增強(qiáng)安全性,需要更換一個(gè)用戶(hù)名稱(chēng),例如換成superuser,或者有公司特色的.例如xxx_admin.
應(yīng)對(duì)策略:
首先創(chuàng)建一個(gè)與root用戶(hù)權(quán)限一樣的用戶(hù).
GRANT ALL PRIVILEGES ON *.* TO 'x_admin'@'127.0.0.1' IDENTIFIED BY 'xxxx';
刪除默認(rèn)的root用戶(hù).
drop user root@'127.0.0.1'; drop user root@'localhost'; drop user root@'::1';
用戶(hù)賬號(hào):
格式為 user_name'@'host_name。
這里的user_name是用戶(hù)名,host_name為主機(jī)名,即用戶(hù)連接 MySQL 時(shí)所用主機(jī)的名字。
如果在創(chuàng)建的過(guò)程中,只給出了用戶(hù)名,而沒(méi)指定主機(jī)名,那么主機(jī)名默認(rèn)為“%”,表示一組主機(jī),即對(duì)所有主機(jī)開(kāi)放權(quán)限。
注意問(wèn)題:
1、視圖
曾經(jīng)用root帳號(hào)為DEFINER的視圖,如果將root刪除,將提示該視圖無(wú)法使用,沒(méi)有權(quán)限.所以要注意提前查看是否存在視圖,存在的話,需要修改該視圖的DEFINER屬性.
修改視圖,是瞬間就能完成的操作,除非該視圖被其他sql語(yǔ)句占用,處于鎖定的狀態(tài).
查看視圖
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、存儲(chǔ)過(guò)程/函數(shù)
情況與視圖類(lèi)似
查看存儲(chǔ)過(guò)程/視圖
select ROUTINE_SCHEMA,ROUTINE_NAME,ROUTINE_TYPE,DEFINER from information_schema.ROUTINES;
或者
select db,name,type,definer from mysql.proc;
修改存儲(chǔ)例程,可直接修改mysql.proc
update mysql.proc set definer='x_admin@127.0.0.1'where db='db_name';
如果修改所有庫(kù)
update mysql.proc set definer='x_admin@127.0.0.1';
2、用root用戶(hù)連接MySQL的腳本
此類(lèi)問(wèn)題比較好解決,可單獨(dú)為腳本創(chuàng)建帳號(hào)用來(lái)執(zhí)行腳本中指定的操作,該用戶(hù)名可用script_,或者腳本名命名.權(quán)限夠用就行,不要分配過(guò)多的權(quán)限.
4、方法:一個(gè)增加用戶(hù)的腳本.(配合批量執(zhí)行)
#!/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用戶(hù)的方法是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱(chēng):mysql刪除root用戶(hù)的方法是什么
網(wǎng)頁(yè)地址:http://chinadenli.net/article24/jpsjce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、電子商務(wù)、做網(wǎng)站、網(wǎng)站排名、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)