存檔

文章標簽 ‘mysql’

mysql審計功能安裝使用

2018年3月21日 1 條評論

mysql社區版沒有審計功能,企業版有審計功能,但是需要付費。

社區版可以使用mcafee開發的審計功能插件libaudit_plugin.so,這個插件可以用在mysql 5.1以后的版本,使用時請下載對應的版本。

https://bintray.com/mcafee/mysql-audit-plugin/release#files

解壓拷貝libaudit_plugin.so到mysql的插件目錄:

查看MySQL的插件目錄:

復制庫文件到MySQL庫目錄下:

# cp audit-plugin-mysql-5.7-1.1.4-725/lib/libaudit_plugin.so /usr/local/mysql/lib/plugin/
# chmod a+x libaudit_plugin.so

進入mysql命令窗口,安裝插件:

> install plugin audit soname 'libaudit_plugin.so';
Query OK, 0 rows affected (0.06 sec)
查看mysql當前已經加載了哪些插件:

查看版本:

開啟Audit功能:

> SET GLOBAL audit_json_file=ON;
Query OK, 0 rows affected (0.00 sec)
執行任何語句(默認會記錄任何語句,有語法錯誤的不會記錄),然后去mysql數據目錄查看mysql-audit.json文件(默認為該文件)。

插入一些數據,查看一下mysql-audit.json文件信息(json格式),如下:

復制代碼

可以查看插件有哪些可配置的參數:

mysql> SHOW GLOBAL VARIABLES LIKE '%audi%';

其中我們需要關注的參數有:

1. audit_json_file

是否開啟audit功能(0為關閉)。

2. audit_json_log_file

記錄文件的路徑和名稱信息(默認放在mysql數據目錄下.json文件)。

3. audit_record_cmds

audit記錄的命令,默認為記錄所有命令。可以設置為任意dml、dcl、ddl的組合。如:audit_record_cmds=select,insert,delete,update。還可以在線設置set global audit_record_cmds=NULL。(表示記錄所有命令)

4. audit_record_objs

audit記錄操作的對象,默認為記錄所有對象( 審計哪些數據庫),可以用SET GLOBAL audit_record_objs=NULL設置為默認。也可以指定為下面的格式:audit_record_objs=,test.*,mysql.*,information_schema.*。

5. audit_whitelist_users

用戶白名單。

詳細的參數說明,可以直接訪問官方說明:

https://github.com/mcafee/mysql-audit/wiki/Configuration

最后為了保證重啟數據庫,配置不丟失,修改my.cnf 配置文件,將下面的配置添加到[mysqld]中,所以在配置文件中my.cnf加入參數:

audit_json_file=on #保證mysql重啟后自動啟動插件
plugin-load=AUDIT=libaudit_plugin.so #防止刪除了插件,重啟后又會加載
audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate' #要記錄哪些命令語句,因為默認記錄所有操作;
保存重啟即可看到效果。

mysql審計插件卸載

直接執行 UNINSTALL PLUGIN AUDIT 卸載會報錯:

需要在 my.cnf 中 [mysqld] 下添加 audit_uninstall_plugin=1,重啟mysql。重啟完畢后執行兩次 UNINSTALL PLUGIN AUDIT; 即可卸載。

卸載完成后需要從 my.cnf 中刪除 audit_uninstall_plugin=1 ,否則下次mysql啟動會報錯:[ERROR] /data/mysql/bin/mysqld: unknown variable 'audit_uninstall_plugin=1'

分類: mysql 標簽: ,

linux編譯安裝mysql

2013年6月14日 10 條評論

緊接著上文,這次是重裝mysql,正好之前有人要lnmp的安裝方法,算上這篇文章就全了。
安裝前準備

如果mysql用戶不存在,那么添加mysql用戶

mysql編譯安裝

到此mysql就安裝到了/usr/local/mysql路徑下,下面開始mysql的配置工作
------------------------------------

安裝mysql選項文件

mysql設置開機自啟動

配置權限表

啟動mysql

這一步可能會報錯
/etc/init.d/mysqld: line 260: my_print_defaults: command not found
/etc/init.d/mysqld: line 263: my_print_defaults: command not found
/etc/init.d/mysqld: line 270: @[email protected]: command not found
/etc/init.d/mysqld: line 279: @[email protected]: command not found
/etc/init.d/mysqld: line 292: cd: @[email protected]: No such file or directory
Starting MySQLCouldn't find MySQL manager (@[email protected]/mysqlmanager) or server (@[email protected]/mysqld_safe) [FAILED]

因為路徑沒有設置,請重啟確認上面配置工作是否都完成,一般是configure后沒有make和make install。

mysql初始化配置:

mysql如何導入舊的數據:
直接拷貝數據庫文件夾到數據目錄下然后執行

==================================================================
mysql安裝過程中問題

1.
make[2]: Entering directory /down/webinstall/mysql-5.1.57/mysql-test
make[3]: Entering directory
/down/webinstall/mysql-5.1.57/mysql-test
make[3]: Nothing to be done for install-exec-am.
make INSTALL_TO_DIR="/usr/local/mysql/mysql-test" install_test_files
make[4]: Entering directory
/down/webinstall/mysql-5.1.57/mysql-test
時間較長
MYSQL安裝到這里卡了很久,可能以為出錯了,實際上MYSQL已經安裝成功了,它這步過段時間就會好了,是mysql在自我編譯測試造成的。

2.checking for termcap functions library... configure: error: No curses/termcap library found
yum install ncurses ncurses-devel

3.Starting MySQL.Manager of pid-file quit without updating fi[FAILED]

啟動數據庫之前,需要先配置權限表,其中/usr/local/mysql為mysql的安裝目錄
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql

分類: mysql 標簽: ,

mysql啟動不了

2013年4月28日 1 條評論

早上訪問www.52587952.com,頁面提示

“建立數據庫連接時出錯”

機器環境跑的是nginx+php-fpm+mysql、出問題之前也沒做過停止mysql進程的操作。

突然間數據庫連接出錯,

開始以為php的問題,那么我在命令行直接訪問mysql

出現錯誤提示

閱讀全文...

分類: mysql 標簽: , , ,

mysql Table 'xx' is read only

2013年4月9日 沒有評論

更換服務器環境的時候如果數據庫是直接拷貝數據庫文件夾過來,需要做兩件事情。

其中/usr/local/lnmp/mysql/是mysql的安裝路徑:

重啟mysql,數據庫就可以使用。

因為數據庫的權限是啟動時加載的需要重新啟動才行。

分類: mysql 標簽: , ,

ERROR 2003 (HY000): Can't connect to MySQL server on 'www.neihanji.com' (111)

2012年11月12日 沒有評論

從一臺服務器去連接另一臺服務器的mysql提示如下錯誤

ERROR 2003 (HY000): Can't connect to MySQL server on 'www.52587952.com' (111)

注釋掉/etc/mysql/my.conf中以下兩條

#skip-networking
#bind-address = 127.0.0.1

重啟mysql服務
service mysql restart

分類: mysql 標簽: ,

mysql插入年月日格式日期

2012年8月21日 沒有評論

mysql中插入如下數據

“2012年1月1日”到 date類型字段

 

數據庫表結構 huangli(day date);

sql語句格式為

insert into huangli values(STR_TO_DATE('2012年1月1日', '%Y年%m月%d日'))

 

 

分類: mysql 標簽: ,

mysql insert忽略1062錯誤

2012年8月6日 沒有評論

批量insert語句主鍵沖突時,會停止執行,報如下錯誤,

ERROR 1062 (23000) at line 5412: Duplicate entry '1577987' for key 'PRIMARY'

mysql -uroot -p123456 -f database < filename.sql

-u后跟用戶名,無空格

-p后跟密碼,無空格

-f后跟數據庫名,有空格表示強制執行,忽略錯誤

分類: mysql 標簽:

mysql date類型字段查詢和插入格式

2012年6月29日 沒有評論

插入

INSERT INTO shengqi(id,content,mm) VALUES ('1','升 7:36<br/>降 16:59','2012-01-1');

查詢:

select id,content from? shengqi where DATE_FORMAT(mm,'%Y-%m') =? '2012-01';

select id,content from? shengqi where mm=? '2012-01-01';

分類: mysql 標簽: , ,

mysql 字段部分內容替換

2012年6月29日 沒有評論

update user set host=REPLACE(host,'main','slave')

對user表中的hoist字段進行替換,字段中main替換成slave

分類: mysql 標簽:
极速快乐十分助手