溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql5.7數(shù)據(jù)庫的常用管理

發(fā)布時(shí)間:2020-05-18 17:01:09 來源:網(wǎng)絡(luò) 閱讀:374 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡(jiǎn)單講講Mysql5.7數(shù)據(jù)庫的常用管理,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望Mysql5.7數(shù)據(jù)庫的常用管理這篇文章可以給大家?guī)硪恍?shí)際幫助。

用戶管理

1,新建用戶

創(chuàng)建的用戶是保存在mysql數(shù)據(jù)庫的user表里,使用查詢語句可以查看創(chuàng)建的用戶。

(1) 命令格式:create user ‘user’@‘host’ identified by ‘密碼’;

查看系統(tǒng)用戶;select user,authentication_string,host from mysql.user;

create user 'test1'@'localhost' identified by 'abc123';

Mysql5.7數(shù)據(jù)庫的常用管理

(2)也可以使用修改權(quán)限的語句grant進(jìn)行創(chuàng)建;

命令格式:grant 權(quán)限 on 數(shù)據(jù)庫.表 to 用戶@主機(jī) identified by 密碼;

grant all on *.* to ‘test2’@’localhost’ identified by ‘a(chǎn)bc123’;

 

Mysql5.7數(shù)據(jù)庫的常用管理

刪除用戶

命令格式:drop user ‘user’@‘host’;

drop user ‘test2’@‘localhost’;

刪除test2這個(gè)用戶后,數(shù)據(jù)庫中已經(jīng)沒有該用戶了。

Mysql5.7數(shù)據(jù)庫的常用管理

重命名用戶

命令格式:rename user 'old_user'@'host' to 'new_user'@'host';

rename user 'test1'@'localhost' to 'user1'@'192.168.30.55';

Mysql5.7數(shù)據(jù)庫的常用管理

給用戶設(shè)置密碼

修改用戶密碼的方式有兩種,修改當(dāng)前登錄的用戶密碼;修改其他用戶的密碼。

(1)修改當(dāng)前登錄用戶密碼的命令格式:

set password = password('密碼');

Mysql5.7數(shù)據(jù)庫的常用管理  

(2)修改其他用戶密碼 的命令格式:

set password for ‘user’@‘host’ = password(‘密碼’);

Mysql5.7數(shù)據(jù)庫的常用管理

忘記root密碼的解決辦法

1)systemctl stop mysqld.service 關(guān)閉數(shù)據(jù)庫

2)修改mysql的配置文件,

vim /etc/my.cnf   寫入skip-grant-tables參數(shù)

作用是用戶登錄時(shí)不使用授權(quán)表,所以用戶可以不使用密碼密碼直接登錄。

Mysql5.7數(shù)據(jù)庫的常用管理  

3)進(jìn)入mysql,使用update修改root密碼

update mysql.user set authentication_string = password('qazwsx123') where user='root';

Mysql5.7數(shù)據(jù)庫的常用管理  

4)將配置文件里的剛才加入的參數(shù)刪掉,重啟mysql,使用新密碼進(jìn)行登錄

Mysql5.7數(shù)據(jù)庫的常用管理

授權(quán)控制

在mysql中,權(quán)限設(shè)置非常重要,分配權(quán)限可以清晰地劃分責(zé)任。

(1)授予權(quán)限 ,

使用grant命令,是指定用戶允許它操作某些表,對(duì)這些表擁有相應(yīng)的操作權(quán)限。

命令格式:grant 權(quán)限 on 數(shù)據(jù)庫.表 to 用戶@主機(jī) identified by 密碼;

查看用戶權(quán)限的命令格式:show grants for ‘user’@‘localhost’;

創(chuàng)建一個(gè)用戶lisi來做實(shí)驗(yàn)驗(yàn)證,使用戶lisi可以在主機(jī)localhost連接,使用密碼“123qwe”,他擁有對(duì)所有數(shù)據(jù)庫表的查詢和修改權(quán)限

Mysql5.7數(shù)據(jù)庫的常用管理

使用lisi登錄mysql進(jìn)行驗(yàn)證

select,update語句可以正常執(zhí)行,但是執(zhí)行insert語句顯示沒有足夠的權(quán)限

Mysql5.7數(shù)據(jù)庫的常用管理

Mysql5.7數(shù)據(jù)庫的常用管理

(2)撤銷權(quán)限

使用revoke語句可以撤銷指定用戶的數(shù)據(jù)庫權(quán)限,命令格式如下:

revoke 權(quán)限 on 數(shù)據(jù)庫.表 from 用戶@主機(jī);

revoke update on *.*  from 'lisi'@'localhost';

Mysql5.7數(shù)據(jù)庫的常用管理

Mysql日志管理

由于日志文件是掌握數(shù)據(jù)庫運(yùn)行狀態(tài)的重要參考,因此日志文件的維護(hù)也有十分重要的意義

mysql的日志類型有:錯(cuò)誤日志,通用日志,二進(jìn)制日志,慢速查詢?nèi)罩?/h4>

默認(rèn)的工作目錄為:/usr/local/mysql/data/

(1)錯(cuò)誤日志

主要記錄當(dāng)mysql啟動(dòng)和停止時(shí),以及在運(yùn)行過程中發(fā)生任何錯(cuò)誤時(shí)的相關(guān)信息。

在mysql的配置文件my.cnf中可以指定錯(cuò)誤日志的保存位置和文件名。

vim /etc/my.cnf

...............

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
#錯(cuò)誤日志

log-error=/usr/local/mysql/data/mysql_error.log                 #指定錯(cuò)誤日志目錄和文件名

重啟mysql服務(wù)后,生成mysql_error.log用來記錄錯(cuò)誤日志

(2)通用查詢?nèi)罩?/h3>

通用查詢?nèi)罩居脕碛涗沵ysql的所有連接和語句,默認(rèn)是關(guān)閉的,修改配置文件的general_log=ON選項(xiàng),可以打開通用查詢?nèi)罩荆?/h4>

vim /etc/my.cnf

...............

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
#通用日志

general_log=ON


general_log_file=/usr/local/mysql/data/mysql_general.log               #打開通用查詢?nèi)罩?,指定位置和文件?/h4>

重啟mysql服務(wù)后,通用查詢?nèi)罩旧?/h4>

(3)二進(jìn)制日志

二進(jìn)制日志用來記錄所有更新了數(shù)據(jù)或已經(jīng)潛在更新了數(shù)據(jù)的語句,記錄了數(shù)據(jù)的更改,主要目的是在恢復(fù)數(shù)據(jù)時(shí)能夠最大程度地恢復(fù)數(shù)據(jù)庫,二進(jìn)制日志默認(rèn)是開啟的。在data目錄下,以mysql-bin命名,數(shù)據(jù)量大時(shí)會(huì)自動(dòng)分割成多個(gè)日志文件,以數(shù)字作為擴(kuò)展名。

vim /etc/my.cnf

...............

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

#二進(jìn)制日志

log_bin=mysql-bin            #加入二進(jìn)制日志參數(shù)

查看二進(jìn)制日志文件可以使用mysqlbinlog命令進(jìn)行查詢

           mysqlbinlog --no-defaults mysql-bin.000001

Mysql5.7數(shù)據(jù)庫的常用管理 

 

(4)慢查詢?nèi)罩?/h3>

慢查詢?nèi)罩居涗浰袌?zhí)行時(shí)間超過long_query_time秒的SQL語句,用于找到哪些查詢語句執(zhí)行時(shí)間長(zhǎng),以便對(duì)其進(jìn)行優(yōu)化。默認(rèn)慢查詢?nèi)罩臼顷P(guān)閉的,slow_query_log是慢查詢?nèi)罩镜倪x項(xiàng),默認(rèn)是OFF

vim /etc/my.cnf

...............

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

#慢日志

slow_query_log=ON                      #開啟慢查詢功能

slow_query_log_file=mysql_slow_query.log    #指定慢查詢?nèi)罩敬娣拍夸浐臀募?/h4>

long_query_time=1        #設(shè)置超過一秒執(zhí)行的語句被記錄

可以將以上的所有參數(shù)同時(shí)在配置文件里進(jìn)行設(shè)定,然后重啟服務(wù),查看結(jié)果

Mysql5.7數(shù)據(jù)庫的常用管理 

Mysql5.7數(shù)據(jù)庫的常用管理  

數(shù)據(jù)亂碼產(chǎn)生的原因

在計(jì)算機(jī)中任何數(shù)據(jù)都是以二進(jìn)制存儲(chǔ)的,要存儲(chǔ)一個(gè)字符就要對(duì)它進(jìn)行編碼,用一個(gè)二進(jìn)制數(shù)與其對(duì)應(yīng),這種對(duì)應(yīng)的規(guī)則就是字符的編碼。編碼的規(guī)則有很多,一種規(guī)則所編碼的“字符”的集合就叫做“字符集”。在指定編碼標(biāo)準(zhǔn)的時(shí)候,“字符的集合“和”編碼“一般都是同時(shí)制定的,因此,平時(shí)我們所說的”字符集“,例如GB2312,GBK,和UTF-8等,除了有”字符的集合“這層含義,同時(shí)也包含了”編碼“的含義。

對(duì)中文處理可以使用GB2312,GBK,它是中文字符集,而UTF-8是對(duì)世界上每個(gè)國(guó)家和地區(qū)的文字制定的字符集,并且UTF-8是可變存儲(chǔ)長(zhǎng)度的字符集,如英文字母只需要一個(gè)字節(jié)存儲(chǔ),節(jié)省了存儲(chǔ)空間,所以數(shù)據(jù)庫中通常采用UTF-8的字符集。

Mysql云服務(wù)器使用中經(jīng)常會(huì)有亂碼產(chǎn)生,主要原因有以下幾種;

(1)云服務(wù)器系統(tǒng)字符集設(shè)置問題

(2)數(shù)據(jù)表語系設(shè)置問題

(3)客戶端連接語系問題

在使用,存儲(chǔ)數(shù)據(jù)的時(shí)候,各個(gè)環(huán)節(jié)如果設(shè)置的字符集不同,就會(huì)產(chǎn)生亂碼

Mysql亂碼解決方法

對(duì)于mysql云服務(wù)器,只要設(shè)置存儲(chǔ)的字符集為UTF-8,對(duì)應(yīng)的客戶端程序也使用相同的編碼,就不會(huì)產(chǎn)生亂碼,mysql設(shè)置字符集的方式有多種

(1)在創(chuàng)建數(shù)據(jù)庫時(shí)指定字符集,使用參數(shù)character set設(shè)置字符集,collate是對(duì)字符集進(jìn)行校對(duì)的規(guī)則

create database chartest character set 'utf8' collate 'utf8_general_ci';

創(chuàng)建表時(shí)如果不指定字符集,默認(rèn)按數(shù)據(jù)庫字符集指定,使用show table status;可以查看表的字符集。

Mysql5.7數(shù)據(jù)庫的常用管理

(2)創(chuàng)建表時(shí)也可以指定字符集,數(shù)據(jù)庫中的表根據(jù)需要可以設(shè)置不同的字符集

Mysql5.7數(shù)據(jù)庫的常用管理



Mysql5.7數(shù)據(jù)庫的常用管理

Mysql5.7數(shù)據(jù)庫的常用管理

(3)一勞永逸的方法,在配置文件my.cnf加入以下設(shè)置

[client]

port = 3306

default-character-set=utf8    #加入這句設(shè)定

socket = /usr/local/mysql/mysql.sock

這時(shí)創(chuàng)建的數(shù)據(jù)庫和表都不需要再指定,只要修改這一處,就可以統(tǒng)一數(shù)據(jù)庫的字符集,重啟后字符集生效。

Mysql5.7數(shù)據(jù)庫的常用管理就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI