MYSQL不能连接,Linux系统与数据库安全

MySQL

官网:‘

新颖版本8.0.11

Windows

%xxx >> 变量

初始化MySQL服务器:

mysqld --initialize --console

启动/关闭MySQL服务器:

net start mysql / net stop mysql

MySQL修改用户密码:

set password for '%user'@'localhost' = '%newpassword';

MySQL创制数据库:

create database %name;

MySQL删除数据库:

drop database %name;

切换来任何数据库:

use %name;

率先次安装MySQL时有很多的坑,逐渐踩~

 

DOS

netstat -ano | findstr %str

类似于linux下

netstat -antup | grep %str

 

Windows查看本机端口使用景况


netstat -nab

焚薮而田措施:(以下内容为自身亲自执行原创)

Linux系统与数据库安全

JDBC连接错误 Cannot create PoolableConnectionFactory (Unknown host specified )


jdbc:oracle:thin:@localhost:1521:xe
那种艺术用于本地连接不是难点,不过远程连接需求在@前面添加//
jdbc:oracle:thin:@//192.168.2.1:1521/XE

小结一下,应该是连接数的难点,那么服务器上有些什么连接数:

 

MySQL导出数据库结构


  1. mysqldump -uroot -p -d databasename > createtab.sql
  2. mysqldump -uroot -p -d databasename test1 test2 test3 >
    createtab.sql
  3. mysqldump YourDatabaseName –user=YourUserName
    –password=YourPassword

参考小说:mysql导出表结构

1、IIS网站服务器中逐条网站中有“连接超时时间”,“会话超时时间”;
2、其它程序占用的服务器连接数(如SMTP服务在发信出去的时候也许有无数个连接数)
3、服务器本身的TCP/IP连接数,如xp系统就有个限制,但是server
2003系统似乎没那些范围。

  1. 帐号安全

选取mysqldump命令蒙受 mysqldump unkown option ‘–no-beep’ 错误


删除my.ini [client]下的 no-beep 参数;
参考文章: ‘mysqldump: unknown option ‘–no-beep’
错误解决’

焚林而猎操作:

帐号权限安全

复制MySQL数据库 转自MySQL神速复制数据库的章程


某些时候,例如为了搭建一个测试环境,或者克隆一个网站,必要复制一个已存在的MySQL数据库。使用以下措施,可以十分简单地促成。
一经已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:

  1. 先是创立新的数据库newdb

#mysql
 -u root -ppassword

mysql>CREATE
 DATABASE `newdb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
  1. 应用mysqldump及mysql的通令组合,三回性完成复制

#mysqldump
 db1 -u root -ppassword --add-drop-table | mysql newdb -u root -ppassword

3.上述是在同一台MySQL服务器上复制数据库的艺术。如果要复制到远程另一台MySQL服务器上,能够使用mysql的“
-h
主机名/ip”参数。前提是mysql允许远程连接,且长途复制的传导功能和时间可以接受。

#mysqldump
 db1 -uroot -ppassword --add-drop-table | mysql -h 192.168.1.22 newdb -uroo

1、我的服务器上边有多少个网站,其中有个网站有个活动发信的效应,用“netstat
-na
>>a.xls”命令查看到服务器25端口和客户端的连接数竟然有4077个,问了弹指间程序员,写程序的时候允许一个客户端ip发起10个一连,那样天翻地覆的消耗了服务器的连年资源,程序员把连接改成了一个ip只同意发起5个三番五次,现在没出难点的时候再查看,唯有2312个一而再了,不了然是或不是以此的功德呢?
2、在IIS中对运用mysql数据库的网站开展安装:把“连接超时”时间由默许的120s改成60s;
再一个地点是“主目录”—“配置”—会话超时时间由20分钟改成2分钟。
脚下服务器成功的运转超过了2个中午没出难点。

 

你或许感兴趣的作品:

  • php不可以连接mysql数据库的正确性解决措施
  • IPv6设置后怎么着缓解MySQL不能够连接localhost的题材
  • mysql
    无法连接问题的定点和修复进度分享
  • php后台常常提示不可能连接mysql
    刷新后又有啥不可访问的解决方式
  • KB967723造成MySQL频仍不可以连接
  • 长途不能连接SQL2000及MySQL的来由和解决办法

1.1. Shell 安全

 

须要:限制用户权限,仅提供一些linux常用命令,用户监控linux系统于互联网运行情状,不容许用户ssh登录后随机运行linux命令

 

用户无法进来到Shell环境

 

例如普通用户一旦登录web服务器可以看到web程序中的数据库配置

 

用户可以通晓OS工作状态如内存,cpu,互连网等等

 

例如:ping, tracepath, top, free, netstat

 

可以查看系统部分日志

 

例如:access.log, error.log, php-error.log …

 

使用mgmt替代bash

 

#!/bin/bash

TITLE=”Client”

 

#USER=$(whiptail –inputbox “User:” 8 60 –title “$TITLE” 3>&1
1>&2 2>&3)

 

#PASSWD=$(whiptail –title “$TITLE” –passwordbox “Passsword:” 8 60
3>&1 1>&2 2>&3)

 

COMMAND=$(whiptail –title “$TITLE” –menu “Administrator Tools” 22 50
10 \

“ping” “ping” \

“tracepath” “tracepath” \

“top” “top” \

“free” “free”  \

“ps” “ps”  \

“netstat” “netstat”  \

“lsof” “lsof”  \

“iftop” “iftop”  \

“log” “log” \

3>&1 1>&2 2>&3)

 

function option(){

OPTION=$(whiptail –inputbox “COMMAND-LINE Options: ” 8 60 –title
“$TITLE” 3>&1 1>&2 2>&3)

}

 

function weblog(){

LOG=$(whiptail –title “$TITLE” –menu “Logs” 22 50 8 \

“/var/log/messages” “message”  \

“/var/log/syslog” “syslog”  \

“/var/log/nginx/access.log” “access.log” \

“/var/log/nginx/error.log” “error.log”  \

3>&1 1>&2 2>&3)

 

}

 

case $COMMAND in

ping)

    option

    $COMMAND $OPTION

    ;;

tracepath)

    option

    $COMMAND $OPTION

    ;;

free)

    $COMMAND -m

    read

    ;;

top|iftop)

    $COMMAND

    ;;

log)

    weblog

    tail -f $LOG

    ;;

ps|lsof)

    option

    $COMMAND $OPTION

    read

    ;;

netstat)

    option

    $COMMAND $OPTION

    read

    ;;

*)

    exit $?

esac

Shell 启动文件,主要用户隐藏 /srv/sbin/mgmt 文件(针对菜鸟)

 

$ cat shell.c

#include <stdlib.h>

main()

{

for (;;){

system(“/srv/sbin/mgmt”);

}

}

编译.c文件

 

gcc shell.c -o /bin/nsh

添加Shell到/etc/shells

 

echo /bin/nsh >> /etc/shells

将用户shell更改为大家正好创造的nsh

 

$ vim /etc/passwd

 

www:x:33:33:www:/var/www:/bin/nsh

今天来作一个测试,要是不易应该现在为上边的TUI界面

 

ssh
[email protected]

 

              ┌───────────────────┤ Client ├───────────────────┐

              │ Administrator Tools                            │

              │                                                │

              │               ping      ping                   │

              │               tracepath tracepath              │

              │               top       top                    │

              │               free      free                   │

              │               ps        ps                     │

              │               netstat   netstat                │

              │               lsof      lsof                   │

              │               iftop     iftop                  │

              │               log       log                    │

              │                                                │

              │                                                │

              │           <Ok>               <Cancel>      
   │

              │                                                │

              └────────────────────────────────────────────────┘

提示

 

那里运用的点子是给用户提供一个界面的主意,其余还有更好的方案,你可以些一个Shell的外壳,你须求完结

 

与Shell相同的唤起符

 

提供TAB补齐

 

上下光标键翻看历史命令,左右光标改变地方,Home/End 键到行首与行尾

 

Ctrl+R 搜索, Ctrl+D 退出

 

Ctrl+S,Ctrl+Q 等等

 

流程

 

用户输入 -> 关键字过滤 -> 放行

诸如用户输入 cd / 经过过滤器后, cd /home/usr/

 

譬如说用户输入 cd /aaa 经过过滤器后, cd /home/usr/aaa

 

rm -rf /usr/local 提醒拒绝等等

 

我已经应用python完结地点的大部分效用(因为python受到众多范围)假若使用C可以100%完成,需求你的想想力了

 

1.2. .history 文件

 

SA的操作记录难题

 

通过~/.bash_history文件记录系统管理员的操作记录,定制.bash_history格式

 

HISTSIZE=1000

HISTFILESIZE=2000

HISTTIMEFORMAT=”%Y-%m-%d-%H:%M:%S “

export HISTTIMEFORMAT

探访实际效果

 

$ history | head

    1  2012-02-27-09:10:45 do-release-upgrade

    2  2012-02-27-09:10:45 vim /etc/network/interfaces

    3  2012-02-27-09:10:45 vi /etc/network/interfaces

    4  2012-02-27-09:10:45 ping www.163.com

  1. 临时文件安全

临时文件不应当有执行权限

 

/tmp

 

MYSQL不能连接,Linux系统与数据库安全。/dev/sda3 /tmp ext4 nosuid,noexec,nodev,rw 0 0

并且选拔标志连接将/var/tmp 指向 /tmp

 

/dev/shm

 

none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0

  1. 其余安全难题

/etc/sudoers

 

Cmnd_Alias WEBMASTER = /usr/local/webserver/nginx/sbin/nginx,
/usr/local/webserver/php/sbin/php-fpm,
!/usr/local/webserver/mysql/bin/*

www localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER

 

Cmnd_Alias Database = /usr/bin/mysqldump, /srv/mysql/bin/mysql,
/u01/oracle/10.x.x/bin/sqlplus

oralce localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES,
WEBMASTER, Database

选拔www用户测试登录,无误后修改SSH配置文件,禁止root登录。

 

vim /etc/ssh/sshd_config

PermitRootLogin no

下一场在测试从www su 到root

 

4. 

封锁22等端口,幸免相互跳转

 

lokkit –enabled

iptables -F

iptables -A OUTPUT -p tcp -m multiport –dports 22,21,2049 -j REJECT

/etc/init.d/iptables save

iptables -L -n

web 服务器禁止接纳ssh,作为跳板机

 

用户将无法选择ssh命令登陆到别的总计机

 

  1. 数据库安全

大家以MySQL为例,讲解怎么样控制DBA权限。稍加修改即可用于oracle等服务器

 

DBA 没有系统SSH帐号,只有数据库帐号

 

系统管理员只好有SSH系统帐号,没有数据库帐号

 

DBA 可备份数据库,还原数据库指定的备份文件,然而接触不到备份文件

 

DBA
有权重启数据库以及修复损坏库/表文件,通过工具达成,而不是登录SSH运行命令

 

5.1. 数据库程序安全

 

rpm, deb 等等包安装mysql后默认权限是 755

 

$ ll /usr/bin/mysql*

-rwxr-xr-x 1 root root  132132 2012-02-28 01:33 /usr/bin/mysql*

-rwxr-xr-x 1 root root  111572 2012-02-28 01:31 /usr/bin/mysqlaccess*

-rwxr-xr-x 1 root root   32468 2012-02-28 01:33 /usr/bin/mysqladmin*

-rwxr-xr-x 1 root root 2030768 2011-09-14 23:04 /usr/bin/mysql-admin*

lrwxrwxrwx 1 root root      10 2012-02-28 01:33 /usr/bin/mysqlanalyze
-> mysqlcheck*

-rwxr-xr-x 1 root root  147288 2012-02-28 01:33 /usr/bin/mysqlbinlog*

-rwxr-xr-x 1 root root   12006 2012-02-28 01:31 /usr/bin/mysqlbug*

-rwxr-xr-x 1 root root   24940 2012-02-28 01:33 /usr/bin/mysqlcheck*

-rwxr-xr-x 1 root root  451016 2012-02-28 01:33
/usr/bin/mysql_client_test*

-rwxr-xr-x 1 root root 7246484 2012-02-28 01:33
/usr/bin/mysql_client_test_embedded*

-rwxr-xr-x 1 root root    4245 2012-02-28 01:31
/usr/bin/mysql_convert_table_format*

-rwxr-xr-x 1 root root   23943 2012-02-28 01:31 /usr/bin/mysqld_multi*

-rwxr-xr-x 1 root root   16642 2012-02-28 01:32 /usr/bin/mysqld_safe*

-rwxr-xr-x 1 root root  101636 2012-02-28 01:33 /usr/bin/mysqldump*

-rwxr-xr-x 1 root root    7402 2012-02-28 01:31 /usr/bin/mysqldumpslow*

-rwxr-xr-x 1 root root    3315 2012-02-28 01:31
/usr/bin/mysql_find_rows*

-rwxr-xr-x 1 root root    1261 2012-02-28 01:31
/usr/bin/mysql_fix_extensions*

-rwxr-xr-x 1 root root    5834 2012-02-28 01:31
/usr/bin/mysql_fix_privilege_tables*

-rwxr-xr-x 1 root root   32477 2012-02-28 01:31 /usr/bin/mysqlhotcopy*

-rwxr-xr-x 1 root root   24584 2012-02-28 01:33 /usr/bin/mysqlimport*

-rwxr-xr-x 1 root root   14657 2012-02-28 01:31
/usr/bin/mysql_install_db*

lrwxrwxrwx 1 root root      10 2012-02-28 01:33 /usr/bin/mysqloptimize
-> mysqlcheck*

-rwxr-xr-x 1 root root 2006884 2011-09-14 23:04
/usr/bin/mysql-query-browser*

lrwxrwxrwx 1 root root      10 2012-02-28 01:33 /usr/bin/mysqlrepair
-> mysqlcheck*

-rwxr-xr-x 1 root root   39016 2012-02-28 01:32 /usr/bin/mysqlreport*

-rwxr-xr-x 1 root root    8066 2012-02-28 01:31
/usr/bin/mysql_secure_installation*

-rwxr-xr-x 1 root root   17473 2012-02-28 01:31
/usr/bin/mysql_setpermission*

-rwxr-xr-x 1 root root   23716 2012-02-28 01:33 /usr/bin/mysqlshow*

-rwxr-xr-x 1 root root   45884 2012-02-28 01:33 /usr/bin/mysqlslap*

-rwxr-xr-x 1 root root  208148 2012-02-28 01:33 /usr/bin/mysqltest*

-rwxr-xr-x 1 root root 6960852 2012-02-28 01:33
/usr/bin/mysqltest_embedded*

-rwxr-xr-x 1 root root 1334028 2012-02-28 01:33
/usr/bin/mysql_tzinfo_to_sql*

-rwxr-xr-x 1 root root   64728 2012-02-28 01:33
/usr/bin/mysql_upgrade*

-rwxr-xr-x 1 root root  149836 2012-02-28 01:33
/usr/bin/mysql_waitpid*

-rwxr-xr-x 1 root root    2108 2012-02-22 01:28
/usr/bin/mysql-workbench*

-rwxr-xr-x 1 root root 9885312 2012-02-22 01:29
/usr/bin/mysql-workbench-bin*

-rwxr-xr-x 1 root root    3888 2012-02-28 01:31 /usr/bin/mysql_997755.com澳门葡京 ,zap*

从安全角度考虑大家要求如下改变

 

chown mysql:mysql /usr/bin/mysql*

chmod 700 /usr/bin/mysql*

mysql用户是DBA专用用户

 

5.2. 数据库客户端安全

 

DBA不要求经过SSH登录数据库服务器,然后运行mysql/sqlplus在报到数据库

 

5.2.1. bind-address

 

假若web与database 在一台机器上

 

bind-address = 127.0.0.1

5.2.2. mysql 管理

 

$ cat ../database/mysqltui

#!/bin/bash

TITLE=”MySQL Client”

 

HOST=$(whiptail –title “$TITLE” –menu “MySQL Host” 22 50 8 \

“127.0.0.1” “localhost” \

“172.16.0.1” “MySQL Master” \

“172.16.0.2” “MySQL Slave 1” \

“172.16.0.3” “MySQL Slave 2”  \

3>&1 1>&2 2>&3)

 

 

 

USER=$(whiptail –inputbox “MySQL User:” 8 60 –title “$TITLE” 3>&1
1>&2 2>&3)

 

PASSWD=$(whiptail –title “$TITLE” –passwordbox “MySQL Password:” 8 60
3>&1 1>&2 2>&3)

 

#DATABASE=$(mysqlshow -h$HOST -u$USER | egrep -o “|\w(.*)\w|” | grep
-v “Databases” |awk ‘{print “\””$1″\” \””$1″\””}’)

#DATABASE=$(mysqlshow -h$HOST -u$USER | egrep -o “|\w(.*)\w|” | grep
-v “Databases” |awk “{print \”$1\” \”$1\”}”)

 

#DB=$(whiptail –title “$TITLE” –menu “MySQL DATABASE” 22 50 8
$DATABASE  3>&1 1>&2 2>&3)

 

DATABASE=$(whiptail –inputbox “MySQL Database:” 8 60 –title “$TITLE”
3>&1 1>&2 2>&3)

 

echo $HOST $USER $PASSWD $DATABASE

 

mysql -h$HOST -u$USER -p$PASSWD $DATABASE

┌───┤ MySQL Adminstrator ├───┐

             │ Menu                       │

             │                            │

             │       1 MySQL Manager      │

             │       2 MySQL Backup       │

             │       2 MySQL Restore      │

             │                            │

             │                            │

             │    <Ok>        <Cancel>    │

             │                            │

             └────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ Database Host                        │

        │                                      │

        │        127.0.0.1  localhost          │

        │        172.16.0.1 mysql master       │

        │        172.16.0.2 mysql slave        │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

/etc/php5/fpm/pool.d/www.conf

 

┌────────┤ MySQL Adminstrator ├────────┐

        │ User                                 │

        │                                      │

        │
root________________________________ │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

 

        ┌────────┤ MySQL Adminstrator ├────────┐

        │ Password                             │

        │                                      │

        │
****________________________________

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

进入mysql客户端

 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 503

Server version: 5.1.58-1ubuntu1 (Ubuntu)

 

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights
reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2
license

 

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.

 

mysql>

安然提醒

 

从平安角度看,你可以去掉输入密码的经过。在终点提示符下输入

 

Enter password:

 

还是能写入~/.my.conf文件

 

这样ssh
[email protected]的时候输入第一道密码,然后进入mysql不要求输入密码

 

只要急需输入密码对话到提议删除.bash_history

 

rm -rf .bash_history

 

ln -s /dev/null .bash_history

 

5.2.3. ~/.mysql_history

 

通过~/.mysql_history文件记录DBA操作记录

 

布置时间点,在~/.bashrc中参预上边发号施令

 

cat >> ~/.bashrc <<EODdd

echo `date` >> ~/.mysql_dhistory

EOD

$ tail ~/.bashrc

echo `date` >> ~/.mysql_history

翻开实际效果

 

$ tail ~/.mysql_history

EXPLAIN SELECT * FROM stuff where id=3 \G

EXPLAIN SELECT * FROM stuff where id=’3′ \G

EXPLAIN SELECT * FROM stuff where id=’2′ \G

Mon Feb 27 09:15:18 CST 2012

EXPLAIN SELECT * FROM stuff where id=’2′ and created = ‘2012-02-01’ \G

EXPLAIN SELECT * FROM stuff where id=’1′ and created = ‘2012-02-01’ \G

EXPLAIN SELECT * FROM stuff where id=’3′ and created = ‘2012-02-01’ \G

EXPLAIN SELECT * FROM stuff where id=’2′ and created = ‘2012-02-01’ \G

EXPLAIN SELECT * FROM stuff where id=’2′ or created = ‘2012-02-01’ \G

EXPLAIN SELECT * FROM stuff where id=’2′ and created = ‘2012-02-01’ \G

Mon Feb 27 11:48:37 CST 2012

5.3. mysqldump 安全

 

5.3.1. 数据备份

 

MySQL Client

             ┌───┤ MySQL Adminstrator ├───┐

             │ Menu                       │

             │                            │

             │       1 MySQL Manager      │

             │       2 MySQL Backup       │

             │       2 MySQL Restore      │

             │                            │

             │                            │

             │    <Ok>        <Cancel>    │

             │                            │

             └────────────────────────────┘

MySQL Client

        ┌────────┤ MySQL Adminstrator ├────────┐

        │ Database Host                        │

        │                                      │

        │        127.0.0.1  localhost          │

        │        172.16.0.1 mysql master       │

        │        172.16.0.2 mysql slave        │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ User                                 │

        │                                      │

        │
root________________________________ │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

 

        ┌────────┤ MySQL Adminstrator ├────────┐

        │ Password                             │

        │                                      │

        │
****________________________________

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ Backup File Name                     │

        │                                      │

        │ 2010-12-12.01:00:00_________________ │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │                                      │

        │ Backup?                              │

        │                                      │

        │                                      │

        │        <Yes>           <No>          │

        │                                      │

        └──────────────────────────────────────┘

5.3.2. 数据恢复生机

 

MySQL Client

             ┌───┤ MySQL Adminstrator ├───┐

             │ Menu                       │

             │                            │

             │       1 MySQL Manager      │

             │       2 MySQL Backup       │

             │       2 MySQL Restore      │

             │                            │

             │                            │

             │    <Ok>        <Cancel>    │

             │                            │

             └────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ Database Host                        │

        │                                      │

        │        127.0.0.1  localhost          │

        │        172.16.0.1 mysql master       │

        │        172.16.0.2 mysql slave        │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ Backup History                       │

        │                                      │

        │        1  2010-12-03 03:00:00        │

        │        2  2012-01-01 02:00:00        │

        │        3  2012-02-01 02:00:00        │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │ User                                 │

        │                                      │

        │
root________________________________ │

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

 

        ┌────────┤ MySQL Adminstrator ├────────┐

        │ Password                             │

        │                                      │

        │
****________________________________

        │                                      │

        │       <Ok>           <Cancel>        │

        │                                      │

        └──────────────────────────────────────┘

┌────────┤ MySQL Adminstrator ├────────┐

        │                                      │

        │ Restore?                             │

        │                                      │

        │                                      │

        │        <Yes>           <No>          │

        │                                      │

        └──────────────────────────────────────┘

5.4. crontab 定时备份脚本于平安

 

网上备份脚本很多,但考虑都不周密。

 

此处扩大了 umask 0077
有限支撑开创备份文件只可以是创立者跟root可以访问,其余用户没有权限,保障了备份档案的吴忠。

 

find $BACKUP_DIR -type f -mtime +$COPIES -delete 是负担备份的份数管理,
过期数据定时删除

 

成立专用的备份帐号

 

grant select, lock tables on *.* to ‘backup’@’192.168.1.200’
identified by “123456”;

crontab 备份脚本

 

# cat /srv/bin/backup

 

#!/bin/bash

###################################

# $Id: security.xml 500 2012-12-04 09:01:55Z netkiller $

# Author:
[email protected]

# Home:

###################################

BACKUP_HOST=”localhost”

BACKUP_USER=”backup”

BACKUP_PASS=””

BACKUP_DIR=/opt/backup

BACKUP_DBNAME=”test neo”

#Number of copies

COPIES=7

####################################

MYSQLDUMP=”mysqldump”

#TIMEPOINT=$(date -u +%Y-%m-%d)

TIMEPOINT=$(date -u +%Y-%m-%d.%H:%M:%S)

MYSQLDUMP_OPTS=”-h $BACKUP_HOST -u$BACKUP_USER -p$BACKUP_PASS”

####################################

umask 0077

test ! -d “$BACKUP_DIR” && mkdir -p “$BACKUP_DIR”

test ! -w $BACKUP_DIR && echo “Error: $BACKUP_DIR is un-writeable.” &&
exit 0

 

for dbname in $BACKUP_DBNAME

do

    test ! -d “$BACKUP_DIR/$dbname” && mkdir -p “$BACKUP_DIR/$dbname”

 

    $MYSQLDUMP $MYSQLDUMP_OPTS $dbname | gzip >
$BACKUP_DIR/$dbname/$dbname.$TIMEPOINT.sql.gz

done

find $BACKUP_DIR -type f -mtime +$COPIES -delete

/srv/bin/backup 安全也根本,否则会走漏备份用户的密码

 

# chown mysql:mysql /srv/bin/backup

# chmod 500 /srv/bin/backup

mysqldump 的安全

 

# chown 700 /usr/bin/mysqldump

5.5. 数据库归档文件

 

相似数据库服务器上得以保存七日的备份数据,历史数据需求保留到服务器以外的带库或者阵列柜中,怎样保险那么些多少的平安呢?
大家应用上面格局

 

创设PGP/GPG密钥,密钥放置在数据库服务器上,证书做好备份,否则假设丢失,将不可以在将备份文件恢复生机

 

数据库备份后,首先进行削减处理

 

然后拔取公钥证书举办GPG/PGP数据加密

 

此时能够放心的将备份数据库搬出数据库服务器到带库或磁盘阵列柜中

 

光复数据,将数据库备份文件复制到该数据库服务器,然后用私钥解密备份文件,再回复到数据库到中

 

5.6. 付出与测试环境的数据库安全难题

 

偶然需要将生产条件的数码复制到开发条件上,例如,测试的时候,再现bug须要真正数据,开发条件的如法泡制数据无法知足要求,这时须要将生育环境的多寡拉到测试或开发条件。若是保障数据的安全越发重大。

 

最有效的一手是数量混淆,将根本的多寡开展模糊扰攘顺序等等

 

骚扰手段有

 

颠倒顺序

曾加苦恼词

重置或交换数据,例如密码可以整个改为test (update user set passwd=’test’)

拼装数据 如 (131,137,135,133,139,138,168)前边加8位随机数

5.7. 与数据库有关的服务器安全题材

 

其他服务器不可以安装mysql客户端与mysqldump备份工具

 

譬如说:web服务器只好通过php/jdbc/odbc等链接mysql数据库, web服务器卸载
mysql,mysqldump工具,防止用户登录查询以及将数据库远程备份,然后通过web下载数据库

 

# adduser www

# passwd www

# chmod 500 -R /usr/local/webserver/mysql/bin/*

# chown root:root -R /usr/local/webserver/mysql/bin/*

 

1. 帐号安全 帐号权限安全
1.1. Shell 安全
必要:限制用户权限,仅提供一些linux常用命令,用户监控linux系统于网络运行…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website