4.56MariaDB密碼重置4.57MariaDB慢查詢日誌
阿新 • • 發佈:2019-03-02
MariaDB密碼重置
MariaDB慢查詢日誌
MariaDB密碼重置
登入MariaDB
- 正常情況使用密碼登入MariaDB,-p後面是密碼
mysql -uroot -ppasscode
重置root密碼
- 如果忘記root密碼
- 編輯/etc/my.cnf,增加:skip-grant,重啟服務
[root@localhost ~]# vi /etc/my.cnf [mysqld] datadir=/data/mysql socket=/tmp/mysql.sock skip-grant [root@localhost ~]# /etc/init.d/mysqld restart
- 登入MariaDB
mysql -uroot
- 執行
use mysql
切換到mysql庫 desc user
檢視user表的所有欄位update user set authentication_string=password("mima.abc") where user='root';
- 退出MariaDB,刪除/etc/my.cnf裡面的skip-grant, 重啟服務
- 用新密碼登入即可
補充
- 使用root使用者登入到MariaDB,
use mysql
切換庫,然後檢視使用者有哪些
MariaDB [mysql]> select user,host from user ; +------+-----------------------+ | user | host | +------+-----------------------+ | bbs | 127.0.0.1 | | blog | 127.0.0.1 | | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | localhost.localdomain | | root | localhost.localdomain | +------+-----------------------+ 8 rows in set (0.006 sec)
- 更改普通使用者密碼
MariaDB [mysql]> update user set authentication_string=password("mima.123") where user='blog';
Query OK, 1 row affected (0.005 sec)
Rows matched: 1 Changed: 1 Warnings: 0
就可以了。
常識
mysql在5.7.36版本之後把密碼欄位存到了authentication_string欄位裡,在之前版本存在password欄位裡。
MariaDB慢查詢日誌
MariaDB慢日誌
- 為什麼配置慢日誌?配置慢日誌是為了幫我們分析MariaDB的瓶頸點(業務的瓶頸點)。一個動態的網站會有資料庫的寫入讀取操作,如果有條執行語句(指令碼)特別慢,最終反映到使用者訪問網站特別慢,結果去查,發現是資料庫讀取操作慢,優化資料庫查詢時間,開啟就快。整個過程怎麼知道是資料庫查詢慢,可以通過查詢慢日誌。
配置慢日誌
- 進入MariaDB
mysql -uroot -ppasscode
- 執行查詢的命令,確認slow日誌的狀態
MariaDB [(none)]> show variables like 'slow%';
+---------------------+--------------------+
| Variable_name | Value |
+---------------------+--------------------+
| slow_launch_time | 2 |
| slow_query_log | OFF |這裡表示slow日誌沒有開啟
| slow_query_log_file | localhost-slow.log |這裡表示slow日誌檔名稱
+---------------------+--------------------+
3 rows in set (0.033 sec)
MariaDB [(none)]> show variables like 'datadir';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| datadir | /data/mysql/ | 這裡是slow日誌存放的路徑
+---------------+--------------+
1 row in set (0.007 sec)
MariaDB [(none)]> show variables like 'long%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 | 這裡定義的是超過響應時間超過10秒會記錄日誌
+-----------------+-----------+
1 row in set (0.004 sec)
- 退出MariaDB,開啟my.conf 配置檔案,增加以下內容
slow_query_log = ON #開啟slow日誌
slow_query_log_file = /data/mysql/bbs-slow.log #定義slow日誌名字
long_query_time = 2 #響應時間超過2秒就記錄。
- 重啟MySQL服務。
[root@localhost ~]# /etc/init.d/mysqld restart
- 使用select語句模擬慢查詢。
select sleep(5);
- 查詢慢日誌記錄情況
cat /data/mysql/bbs-slow.log
/usr/local/mysql/bin/mysqld, Version: 10.3.12-MariaDB-log (MariaDB Server). started with:
Tcp port: 0 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 190225 4:32:49
# User@Host: root[root] @ localhost []
# Thread_id: 9 Schema: QC_hit: No
# Query_time: 5.007798 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
# Rows_affected: 0 Bytes_sent: 63
SET timestamp=1551087169;
select sleep(5);
補充關於MySQL的一個命令
- show processlist ; 用於檢視資料庫中的查詢佇列,相當於檢視系統的程序,可以比較好的瞭解資料庫是否處於忙碌狀態
- show full processlist ;跟上一個命令一樣,這個指令會將佇列中的查詢語句完整