詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

數(shù)據(jù)庫是信息系統(tǒng)中非常重要的環(huán)節(jié),合理高效的對它進行管理是很重要的工作。通常是由總管理員創(chuàng)建不同的管理賬戶,然后分配不同的操作權(quán)限,把這些賬戶交給相應(yīng)的管理人員使用。本篇我們在CentOS7.5操作系統(tǒng)上應(yīng)用MySQL5.7版本。
用戶與授權(quán)(用戶管理、授權(quán)控制)
一、用戶管理包括:新建用戶、刪除用戶、重命名用戶、給用戶設(shè)置密碼、忘記root密碼的解決辦法;
select User,authentication_string,host from user; //查看有多少個用戶及用戶信息 :

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

成都創(chuàng)新互聯(lián)公司主營白沙黎族網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,白沙黎族h5成都小程序開發(fā)搭建,白沙黎族網(wǎng)站營銷推廣歡迎白沙黎族等地區(qū)企業(yè)咨詢

create user 'test01'@'localhost' identified by '123123'; //創(chuàng)建用戶及密碼:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

grant all on . to 'test02'@'localhost' identified by '123123'; //給任何庫任何表創(chuàng)建全部權(quán)限的用戶及密碼:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

drop user 'test01'@'localhost'; //刪除用戶:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

rename user 'test02'@'localhost' to 'user01'@'192.168.100.70'; //用戶重命名:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

select password('123123'); //將密碼的明文轉(zhuǎn)化成密文:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

create user 'user01'@'localhost' identified by password '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1'; //新創(chuàng)建用戶user01并制定密文密碼
set password for 'user01'@'localhost' = password('123123'); // 如果密碼忘了 可以重新更改密碼 :

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

使用MySQL時,如果忘記了其他用戶的密碼,可以使用root用戶重新設(shè)置,但是如果忘記了root密碼,就需要采取特殊的方法進行操作。這里直接修改授權(quán)表可以修改root密碼,下面介紹它 的使用步驟:

[root@localhost bin]# systemctl stop mysqld.service //先關(guān)閉MySQL數(shù)據(jù)庫
[root@localhost bin]# netstat -ntap | grep 3306 //查看一下監(jiān)聽端口
[root@localhost bin]# vim /etc/my.cnf //修改MySQL配置文件
在[mysqld]項插入 skip-grant-tables //插入skip-grant-tables 跳過驗證表
[root@localhost bin]# systemctl start mysqld.service //開啟MySQL數(shù)據(jù)庫
[root@localhost bin]# netstat -ntap | grep 3306 //查看監(jiān)聽端口
登錄 mysql //然后直接mysql 就能登錄到數(shù)據(jù)庫中
update mysql.user set authentication_string = password('123123') where user='root'; //更新數(shù)據(jù)庫信息 將root密碼改為123123
退出quit
[root@localhost bin]# vim /etc/my.cnf //然后再進入配置文件將剛才的skip-grant-tables刪掉
刪除 skip-grant-tables
[root@localhost bin]# systemctl restart mysqld.service //重啟服務(wù)
[root@localhost bin]# mysql -uroot -p //賬號、密碼登錄MySQL
Enter password: 123123

二、授權(quán)控制包括授予權(quán)限、查看權(quán)限、撤銷權(quán)限、權(quán)限列表說明等。
主要命令操作如下:

grant select,update on . to 'user01"@"localhost' identified by '123123'; //給用戶user01授予任意庫,組的select、update權(quán)限
語法:revoke 權(quán)限 on數(shù)據(jù)庫.表 from 用戶@主機;
revoke updtae on . from ‘user01’@’localhost’; //撤銷用戶user01任意庫,組的的updta的權(quán)限
show grants for "user01'@'localhost'; // 查看用戶權(quán)限

MySQL日志管理(錯誤日志、通用查詢?nèi)罩尽⒍M制日志、慢查詢?nèi)罩?
接下來修改MySQL的配置文件,將以上四種日志的配置文件插入到[mysqld]中:

[root@localhost bin]# cd /usr/local/mysql/data/ //mysql日志存放位置
[root@localhost bin]# vim /etc/my.cnf // 將以下內(nèi)容插入到[mysqld]中:
#錯誤日志
log-error=/usr/local/mysql/data/mysql_error.log //在此路徑下定義錯誤日志的存放位置、文件名
#通用日志
general_log=ON //開啟???
general_log_file=/usr/local/mysql/data/mysql_general.log //指定日志文件存放位置、文件名
#二進制日志(記錄用戶對數(shù)據(jù)庫的操作)
log_bin=mysql-bin //指定二進制日志
#慢日志
slow_query_log=ON????????????????????????????????? //開啟???
slow_query_log_file=mysql_slow_query.log //指定日志文件存放位置、文件名
long_query_time=1 //設(shè)置最長記錄時間
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

查看已經(jīng)配置好的日志文件:

詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

錯誤日志:

1.主要記錄當MySQL啟動或停止時,以及在運行過程中發(fā)生任何錯誤時的相關(guān)信息。錯誤日志默認保存在MySQL的安裝路徑data文件夾下,后綴名是.err。
2.在MySQL的配置文件中,可以指定日志文件的保存位置和日志的文件名。log-error=file_name選項來指定保存錯誤日志的位置,file_name 指定日志文件名,如果沒有指定文件名,使用host_name.err作為文件名。重啟MySQL后生成mysql_error.log用來記錄錯誤日志。

通用查詢?nèi)罩荆?/h6>

1.通用查詢?nèi)罩居脕碛涗汳ySQL的所有連接和語句,默認是關(guān)閉的。使用show語句可以查詢出日志的信息。
2.修改MySQL配置文件的general_log=ON選項,可以打開通用查詢?nèi)罩荆琯eneral_log_file=name定義通用查詢?nèi)罩镜奈恢?,如果沒有指定file_named的值,默認名是host_name.log。重啟MySQL后通用查詢?nèi)罩旧А?br/>show variables like 'general%'; //查看通用日志文件狀態(tài):
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

二進制日志:

1.二進制日志用來記錄所有更新了數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)的語句,記錄了數(shù)據(jù)的更改,主要目的是在恢復(fù)數(shù)據(jù)時能夠最大程度的恢復(fù)數(shù)據(jù)庫。二進制日志默認是開啟的,在data文件夾下,以mysql-bin命名,數(shù)據(jù)量大時,它會自動分割成多個日志文件,以數(shù)字做擴展名。
2.二進制日志可以使用MySQL的工具mysqlbinlog查看二進制文件:
mysqlbinlog --no-defaults mysql-bin.000001 //5.7版本MySQL 查看二進制日志文件
show variables like 'log_bin%'; //查看二進制日志文件狀態(tài)(是否開啟):
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。

慢查詢?nèi)罩荆?/h6>

1.慢查詢?nèi)罩居涗浰袌?zhí)行時間超過long_query_time秒的SQL語句,用于找到哪些查詢語句執(zhí)行時間長,以便對其進行優(yōu)化。默認慢查詢?nèi)罩臼顷P(guān)閉的,slow_query_log是,慢查詢的選項,默認是OFF。
2.使用SQL語句開啟慢查詢功能。
3.慢查詢時間設(shè)置默認為10秒,記錄10秒內(nèi)的查詢,可以通過global long_query_time選項進行修改。使用show語句查看慢查詢?nèi)罩尽?br/>show variables like '%slow%'; //查看慢查詢?nèi)罩疚募顟B(tài)(是否開啟):
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。
show variables like 'long_query_time'; //查看最長記錄時間:
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。
set global slow_query_log=ON; //開啟慢查詢?nèi)罩荆?br/>詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。
慢查詢測試:select sleep(6); //延遲6秒:
詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。
[root@localhost data]# vim mysql_slow_query.log //進入慢日志文件查看記錄信息,可以看到相應(yīng)的記錄。

數(shù)據(jù)亂碼解決方案
MySQL服務(wù)器使用中經(jīng)常有亂碼產(chǎn)生,主要有以下幾種原因:

1.服務(wù)器系統(tǒng)字符設(shè)置問題
2.數(shù)據(jù)表語系設(shè)置的問題
3.客戶端連接語系的問題
總結(jié):亂碼問題原因簡單解釋就是 在使用、存儲數(shù)據(jù)的時候,各個環(huán)節(jié)設(shè)置的字符集如果不同,就會產(chǎn)生亂碼。

解決方法:對于MySQL服務(wù)器,只要設(shè)置存儲的字符集為UTF-8,對應(yīng)的客戶端程序也使用相同編碼,就不會產(chǎn)生亂碼。例如:create database chartest character set 'utf8_general_ci'; 在創(chuàng)建數(shù)據(jù)庫時使用參數(shù)character set設(shè)置字符集,collate是對字符集進行校隊的規(guī)則,字符集設(shè)置好后后續(xù)在庫中都是默認的UTF-8了。
本章總結(jié):
1.MySQL新建用戶需要指定權(quán)限。
2.忘記root密碼,可以跳過權(quán)限表進行修改。
3.MySQL日志包括錯誤日志、通用查詢?nèi)罩尽⒍M制日志、慢速查詢?nèi)罩尽?/h5>
4.MySQL亂碼問題可以采用指定字符集UTF-8的方式解決。

新聞名稱:詳解MySQL用戶與授權(quán)、MySQL日志管理、數(shù)據(jù)亂碼解決方案。
文章來源:http://muchs.cn/article14/ihecde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、手機網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、定制網(wǎng)站域名注冊、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司