標籤:產生 亂碼 image word 使用者管理 技術分享 撤銷 監聽連接埠 images
資料庫是資訊系統中非常重要的環節,合理高效的對它進行管理是很重要的工作。通常是由總管理員建立不同的管理賬戶,然後分配不同的操作許可權,把這些賬戶交給相應的管理員使用。本篇我們在CentOS7.5作業系統上應用MySQL5.7版本。使用者與授權(使用者管理、授權控制)一、使用者管理組件括:建立使用者、刪除使用者、重新命名使用者、給使用者佈建密碼、忘記root密碼的解決辦法;select User,authentication_string,host from user; //查看有多少個使用者及使用者資訊 :
create user ‘test01‘@‘localhost‘ identified by ‘123123‘; //建立使用者及密碼:
grant all on
. to ‘test02‘@‘localhost‘ identified by ‘123123‘; //給任何庫任何錶建立全部許可權的使用者及密碼:
drop user ‘test01‘@‘localhost‘; //刪除使用者:
rename user ‘test02‘@‘localhost‘ to ‘user01‘@‘192.168.100.70‘; //使用者重新命名:
select password(‘123123‘); //將密碼的明文轉化成密文:
create user ‘user01‘@‘localhost‘ identified by password ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1‘; //新建立使用者user01並制定密文密碼set password for ‘user01‘@‘localhost‘ = password(‘123123‘); // 如果密碼忘了 可以重新更改密碼 :
使用MySQL時,如果忘記了其他使用者的密碼,可以使用root使用者重新設定,但是如果忘記了root密碼,就需要採取特殊的方法進行操作。這裡直接修改授權表可以修改root密碼,下面介紹它 的使用步驟:
[[email protected] bin]# systemctl stop mysqld.service //先關閉MySQL資料庫
[[email protected] bin]# netstat -ntap | grep 3306 //查看一下監聽連接埠
[[email protected] bin]# vim /etc/my.cnf //修改MySQL設定檔
在[mysqld]項插入 skip-grant-tables //插入skip-grant-tables 跳過驗證表
[[email protected] bin]# systemctl start mysqld.service //開啟MySQL資料庫
[[email protected] bin]# netstat -ntap | grep 3306 //查看監聽連接埠
登入 mysql //然後直接mysql 就能登入到資料庫中
update mysql.user set authentication_string = password(‘123123‘) where user=‘root‘; //更新資料庫資訊 將root密碼改為123123
退出quit
[[email protected] bin]# vim /etc/my.cnf //然後再進入設定檔將剛才的skip-grant-tables刪掉
刪除 skip-grant-tables
[[email protected] bin]# systemctl restart mysqld.service //重啟服務
[[email protected] bin]# mysql -uroot -p //帳號、密碼登入MySQL
Enter password: 123123
二、授權控制包括授予許可權、查看許可權、撤銷許可權、許可權列表說明等。主要命令操作如下:
grant select,update on . to ‘user01"@"localhost‘ identified by ‘123123‘; //給使用者user01授予任意庫,組的select、update許可權
文法:revoke 許可權 on資料庫.表 from 使用者@主機;
revoke updtae on . from ‘user01’@’localhost’; //撤銷使用者user01任意庫,組的的updta的許可權
show grants for "user01‘@‘localhost‘; // 查看使用者權限
MySQL日誌管理(錯誤記錄檔、通用查詢日誌、二進位日誌、慢查詢日誌)接下來修改MySQL的設定檔,將以上四種日誌的設定檔插入到[mysqld]中:
[[email protected] bin]# cd /usr/local/mysql/data/ //mysql日誌存放位置
[[email protected] bin]# vim /etc/my.cnf // 將以下內容插入到[mysqld]中:
#錯誤記錄檔
log-error=/usr/local/mysql/data/mysql_error.log //在此路徑下定義錯誤記錄檔的存放位置、檔案名稱
#通用日誌
general_log=ON //開啟???
general_log_file=/usr/local/mysql/data/mysql_general.log //指定記錄檔存放位置、檔案名稱
#二進位日誌(記錄使用者對資料庫的操作)
log_bin=mysql-bin //指定二進位日誌
#慢日誌
slow_query_log=ON????????????????????????????????? //開啟???
slow_query_log_file=mysql_slow_query.log //指定記錄檔存放位置、檔案名稱
long_query_time=1 //設定最長記錄時間
查看已經配置好的記錄檔:
錯誤記錄檔:
1.主要記錄當MySQL啟動或停止時,以及在運行過程中發生任何錯誤時的相關資訊。錯誤記錄檔預設儲存在MySQL的安裝路徑data檔案夾下,尾碼名是.err。
2.在MySQL的設定檔中,可以指定記錄檔的儲存位置和日誌的檔案名稱。log-error=file_name選項來指定儲存錯誤記錄檔的位置,file_name 指定記錄檔名,如果沒有指定檔案名稱,使用host_name.err作為檔案名稱。重啟MySQL後產生mysql_error.log用來記錄錯誤記錄檔。
通用查詢日誌:
1.通用查詢日誌用來記錄MySQL的所有串連和語句,預設是關閉的。使用show語句可以查詢出日誌的資訊。
2.修改MySQL設定檔的general_log=ON選項,可以開啟通用查詢日誌,general_log_file=name定義通用查詢日誌的位置,如果沒有指定file_named的值,預設名是host_name.log。重啟MySQL後通用查詢日誌生效。
show variables like ‘general%‘; //查看通用記錄檔狀態:
二進位日誌:
1.二進位日誌用來記錄所有更新了資料或者已經潛在更新了資料的語句,記錄了資料的更改,主要目的是在恢複資料時能夠最大程度的恢複資料庫。二進位日誌預設是開啟的,在data檔案夾下,以mysql-bin命名,資料量大時,它會自動分割成多個記錄檔,以數字做副檔名。
2.二進位日誌可以使用MySQL的工具mysqlbinlog查看二進位檔案:
mysqlbinlog --no-defaults mysql-bin.000001 //5.7版本MySQL 查看二進位記錄檔
show variables like ‘log_bin%‘; //查看二進位記錄檔狀態(是否開啟):
慢查詢日誌:
1.慢查詢日誌記錄所有執行時間超過long_query_time秒的SQL語句,用於找到哪些查詢語句執行時間長,以便對其進行最佳化。預設慢查詢日誌是關閉的,slow_query_log是,慢查詢的選項,預設是OFF。
2.使用SQL語句開啟慢查詢功能。
3.慢查詢時間設定預設為10秒,記錄10秒內的查詢,可以通過global long_query_time選項進行修改。使用show語句查看慢查詢日誌。
show variables like ‘%slow%‘; //查看慢查詢記錄檔狀態(是否開啟):
show variables like ‘long_query_time‘; //查看最長記錄時間:
set global slow_query_log=ON; //開啟慢查詢日誌:
慢查詢測試:select sleep(6); //延遲6秒:
[[email protected] data]# vim mysql_slow_query.log //進入慢記錄檔查看記錄資訊,可以看到相應的記錄。
資料亂碼解決方案MySQL伺服器使用中經常有亂碼產生,主要有以下幾種原因:
1.伺服器系統字元設定問題
2.資料表語系設定的問題
3.用戶端串連語系的問題
總結:亂碼問題原因簡單解釋就是 在使用、儲存資料的時候,各個環節設定的字元集如果不同,就會產生亂碼。
解決方案:對於MySQL伺服器,只要設定儲存的字元集為UTF-8,對應的用戶端程式也使用相同編碼,就不會產生亂碼。例如:create database chartest character set ‘utf8_general_ci‘; 在建立資料庫時使用參數character set設定字元集,collate是對字元集進行校隊的規則,字元集設定好後後續在庫中都是預設的UTF-8了。本章總結:1.MySQL建立使用者需要指定許可權。2.忘記root密碼,可以跳過許可權表進行修改。3.MySQL日誌包括錯誤記錄檔、通用查詢日誌、二進位日誌、慢速查詢日誌。4.MySQL亂碼問題可以採用指定字元集UTF-8的方式解決。
詳解MySQL使用者與授權、MySQL日誌管理、資料亂碼解決方案。