设为首页 收藏本站
查看: 1390|回复: 0

[经验分享] 整合nginx,tomcat,mysql的安装与配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-24 08:53:06 | 显示全部楼层 |阅读模式

linux下Nginx+tomcat+mysql整合的安装与配置维护

安装Tomcat和JDK
上传apache-tomcat-6.0.18.tar.gz和jdk-6u12-linux-i586.bin至/usr/local
执行如下命令安装tomcat #cd /usr/local  #tar zxvf apache-tomcat-6.0.18.tar.gz

解压完成后将apache-tomcat-6.0.18重命名为tomcat

执行如下命令安装JDK:

设置权限chmod 777 jdk-1_6_0_14-linux-i586-rpm.bin  

   #./jdk-6u12-linux-i586.bin

配置环境变量
编辑/etc下的profile文件加上如下内容

   JAVA_HOME="/usr/local/jdk1.6.0_12"

   CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

   PATH=".:$PATH:$JAVA_HOME/bin "

   CATALINA_HOME="/usr/local/tomcat"

   export JAVA_HOME CATALINA_HOME

启动tomcat并输入http://localhost:8080如果看到猫的页面即tomcat和jdk安装成功
新建文件目录/home/www为网站存放目录设置server.xml文件在Host name="localhost"处将appBase=的指向路径改为/home/www/web
工程网站路径为:/home/www/web
访问控制
vi /etc/sysconfig/iptables 添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8079 -j ACCEPT

安装Nginx
上传nginx-0.7.63.tar.gz至/usr/local
执行如下命令解压nginx
   #cd /usr/local

  #tar zxvf  nginx-0.7.63.tar.gz

编译安装nginx

  #cd nginx-0.7.63

#./configure --with-http_stub_status_module --with-http_ssl_module  #启动server状态页和https模块

执行完后会提示一个错误说缺少PCRE library 这个是HTTP Rewrite 模块也即是url静态化的包可上传pcre-7.9.tar.gz输入如下命令安装

     tar zxvf pcre-7.9.tar.gz

    #cd pcre-7.9

    #./configure

   #make

   #make install

安装pcre成功后继续安装nginx

   #cd nginx-0.7.63

   #./configure

   #make

   #make install

安装pcre需要安装更新gcc,命令yum install gcc


nginx安装成功后的安装目录为/usr/local/nginx

安装时会出现报错
错误提示./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.
解决办法yum -y install pcre-devel openssl openssl-devel

在conf文件夹中新建proxy.conf用于配置一些代理参数内容如下

#!nginx (-)  

# proxy.conf  

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       4k;

proxy_buffers           4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;


编辑安装目录下conf文件夹中的nginx.conf输入如下内容

#运行nginx所在的用户名和用户组

user  www www;
worker_processes 8;
error_log  /usr/local/nginx/logs/nginx_error.log  crit;
pid        /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include       mime.types;
  default_type  application/octet-stream;
  charset  utf-8;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 300m;
  sendfile on;
  tcp_nopush     on;
  keepalive_timeout 60;
  tcp_nodelay on;
  client_body_buffer_size  512k;
  proxy_connect_timeout    5;
  proxy_read_timeout       60;
  proxy_send_timeout       5;
  proxy_buffer_size        16k;
  proxy_buffers            4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types      text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
  upstream tomcat_server {
   server   127.0.0.1:8080;
  }
  server
  {
    listen       80;
    server_name  www.yourdomain.com;
    index index.html index.htm index.jsp default.jsp index.do default.do;
    root  /data0/htdocs/www;  
    if (-d $request_filename)
    {
        rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
    }
    location ~ \.(jsp|jspx|do)?$ {
        proxy_set_header Host  $host;
        proxy_set_header X-Forwarded-For  $remote_addr;
        proxy_pass http://tomcat_server;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires      1h;
    }   
    access_log  off;
    }
}

修改/usr/local/nginx/conf/nginx.conf配置文件后请执行以下命令检查配置文件是否正确

查看

spacer.jpg #/usr/local/nginx/sbin/nginx -t

如果屏幕显示以下两行信息说明配置文件正确

  the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

 the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully

如果提示unknown host则可在服务器上执行ping www.baidu.com如果也是同样提示unknown host则有两种可能
    a、服务器没有设置DNS服务器地址查看/etc/resolv.conf下是否设置若无则加上
    b、防火墙拦截

Nginx与tomcat维护命令
Nginx
启动nginx的命令
#/usr/local/nginx/sbin/nginx
这时输入以下命令查看Nginx主进程号

停止nginx的命令
#/usr/local/nginx/sbin/nginx -s stop
在不停止Nginx服务的情况下平滑变更Nginx配置
a、修改/usr/local/nginx/conf/nginx.conf配置文件后请执行以下命令检查配置文件是否正确
/usr/local/nginx/sbin/nginx –t
如果屏幕显示以下两行信息说明配置文件正确

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully

b、这时输入以下命令查看Nginx主进程号

ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

屏幕显示的即为Nginx主进程号例如
  6302
  这时执行以下命令即可使修改过的Nginx配置文件生效
kill -HUP 6302
或者无需这么麻烦找到Nginx的Pid文件
kill -HUP `cat /usr/local/nginx/nginx.pid`
nginx启动好后启动tomcat此时输入http://主机ip地址即可看到“My web!”
三、其他
stub_status
语法: stub_status on

默认值: None

作用域: location

创建一个 location 区域启用 stub_status

"stub status" 模块返回的状态信息跟 mathopd's 的状态信息很相似. 返回的状态信息如下

Active connections: 291

server accepts handled requests

16630948 16630948 31070465

Reading: 6 Writing: 179 Waiting: 106

active connections -- 对后端发起的活动连接数

server accepts handled requests -- nginx 总共处理了 16630948 个连接, 成功创建 16630948 次握手 (证明中间没有失败的), 总共处理了 31070465 个请求 (平均每次握手处理了 1.8个数据请求)

reading -- nginx 读取到客户端的Header信息数

writing -- nginx 返回给客户端的Header信息数

waiting -- 开启 keep-alive 的情况下这个值等于 active - (reading + writing)意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接

Tomcat维护命令
Tomcat假死自动定时重起脚本
脚本代码
#!/bin/sh
export JAVA_HOME=/usr/local/jdk/
pid=`ps auxww|grep tomcat|grep -v grep|awk '{print $2}'`
echo $pid
if [ -n "$pid" ];
then
{
echo "==========tomcat is start============"
'/usr/java/tomcat/bin/shutdown.sh'
sleep 5
'/usr/java/tomcat/bin/shutdown.sh'
sleep 15
pid=`ps auxww|grep tomcat|grep -v grep|awk '{print $2}'`
if [ -n "$pid" ];
then
{
echo "======to kill the tomcat pid $pid========"
kill $pid
sleep 3
}
fi
echo "==========start tomcat============"
'/usr/java/tomcat/bin/startup.sh'
}
else
{
echo "==========tomcat is stop=====start======="
'/usr/java/tomcat/bin/startup.sh'
}
fi
将tomcat路径指向正确利用crontab进行轮循调用


Mysql安装

安装相关库文件  

yum install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel*

安装wget/ntsysv/patch/make

yum install wget

yum install ntsysv

yum install patch

yum install make

编译安装 MySQL
tar zxvf mysql-5.1.57.tar.gz && cd mysql-5.1.57
./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile
make && make install && cd ..
创建mysql用户组创建数据库、日志等存储目录并赋予权限
mkdir -p /data/mysqldata
mkdir -p /data/mysqldata/database
mkdir -p /data/mysqldata/log
mkdir -p /data/mysqldata/pid
groupadd mysql
useradd -g mysql -d /data/mysqldata/database -s /sbin/nologin mysql
chgrp -R mysql /usr/local/webserver/mysql/.
chown -R root:mysql /usr/local/webserver/mysql/*
chown -R mysql:mysql /data/mysqldata/*
修改/etc/my.cnf文件参数参数适用于大于2G内存服务器
[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
user            = mysql
port            = 3306
socket          = /tmp/mysql.sock
basedir         = /usr/local/webserver/mysql
datadir         = /data/mysqldata/database
log-error       = /data/mysqldata/log/mysql_error.log
pid-file        = /data/mysqldata/pid/mysql.pid
skip-external-locking
skip-name-resolve
back_log = 500
key_buffer_size = 256M
max_allowed_packet = 32M
thread_stack = 192K
table_cache = 256
sort_buffer_size = 4M
read_buffer_size = 4M
join_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache = 128
thread_cache_size = 10
query_cache_size = 32M
tmp_table_size = 128M
max_connections = 5000
wait_timeout = 60
max_connect_errors = 6000
expire_logs_days = 30
server-id       = 1
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
初始化MySQL服务 /usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/data/mysqldata/database --user=mysql
启动MySQL服务/usr/local/webserver/mysql/bin/mysqld_safe --user=mysql &            启动服务/usr/local/webserver/mysql/bin/mysqladmin -u root -p shutdown        停止服务
修改root密码/usr/local/webserver/mysql/bin/mysqladmin -u root password ‘yourpassword’

Mysql维护

# cp support-files/mysql.server /etc/init.d/mysql
# chmod 755 /etc/init.d/mysql // 给 mysql 这个文件赋予“执行”权限
# chkconfig --add mysql // 加入到开机自动运行
# service mysql restart // 重新启动 MySQL
授权操作
改表法。可能是你的帐号不允许从远程登陆只能在localhost。这个时候只要在localhost的那台电脑登入mysql后更改 “mysql” 数据库里的 “user” 表里的 “host” 项从“localhost”改称“%”
代码
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>select host, user from user;
mysql>FLUSH   PRIVILEGES
2. 授权法。例如你想myuser使用mypassword从任何主机连接到mysql服务器的话。
代码GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器并使用mypassword作为密码GRANT ALL PRIVILEGES ON *.* TO ‘root’ @ '192.168.0.141’  IDENTIFIED BY ‘root’ WITH GRANT OPTION;
MySQL(root用户)密码重置
1、首先停止正在运行的MySQL进程
Linux下,运行 killall -TERM mysqld
2、以安全模式启动MySQL
Linux下运行 /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
3、完成以后就可以不用密码进入MySQL了
Linux下运行 /usr/local/mysql/bin/mysql -u root -p 进入
4、更改密码
>use mysql
>update user set password=password("新密码") where user="root";
>flush privileges;
自动数据备份
mysql_databasename_backup.sh内容
#!/bin/bash
extdir='/home/mysql/backup/';
extbase='auto_databasename_'`date '+%F'`;echo $extbase;
extfile='auto_databasename_'`date '+%F'`'.sql';echo $extfile;
echo "开始备份数据..."
cd $extdir
mysqldump --opt databasename -u username -ppassword | gzip > $extdir$extfile.gz
#删除以往多少天的数据
echo "删除本地7天前的备份数据..."
old_file='auto_databasename_'`date '+%F' --date='7 days ago'`'.*'
echo $old_file
rm –rf $extdir$old_file
利用crontab进行轮循使用

数据表的碎片整理
数据量大并且经常修改每周或都每月进行
手动命令optimize table table_name

自动整理碎片脚本
Shell脚本代码
#!/bin/sh
mysql_user=root  
mysql_pass=root
time_log=/opt/time
databases=/opt/databases
/usr/local/mysql/bin/mysql -u$mysql_user -p$mysql_pass -e "show databases" | grep -v "Database" > /opt/databases
sed -i "s/information_schema//" $databases  
sed -i "s/mysql//" $databases
sed -i "s/test//" $databases  
databases1=$(cat /opt/databases)
for i in $databases1  
do  
echo "database $i starting"
tables=$(/usr/local/mysql/bin/mysql $i -u$mysql_user -p$mysql_pass -e "show tables" | grep -v "Tables" > /opt/$i)
tablelist=$(cat /opt/$i)
echo "optimize database $i starting" >> $time_log
echo "$i start at $(date  +[%Y/%m/%d/%H:%M:%S])" >> $time_log
for list in $tablelist  
do
echo $list
/usr/local/mysql/bin/mysql $i -u$mysql_user -p$mysql_pass -e "optimize table $list"
done
echo "$i end   at $(date  +[%Y/%m/%d/%H:%M:%S])" >> $time_log  
echo >> $time_log
done

附MYSQL命令合集

还原一个数据库:mysql -h localhost -u root -p123456 www
备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:\www2008-2-26.sql
其中WWW为数据库名
以下是在程序中进行测试
$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile”;
$command=”mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql”;
system($command);
echo “success”;

备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
几个常用用例
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u root -p dataname >dataname.sql
这个时候会提示要你输入root用户名的密码,输入密码后dataname数据库就成功备份在mysql/bin/目录中.
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u root -p dataname users> dataname_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台
如mysql -u root -p
mysql>use 数据库
然后使用source命令后面参数为脚本文件如这里用到的.sql
mysql>source d:\wcnc_db.sql
mysqldump支持下列选项
–add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
–add-drop-table
在每个create语句之前增加一个drop table。
–allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, –complete-insert
使用完整的insert语句(用列名字)。
-C, –compress
如果客户和服务器均支持压缩压缩两者间所有的信息。
–delayed
用INSERT DELAYED命令插入行。
-e, –extended-insert
使用全新多行INSERT语法。给出更紧缩并且更快的插入语句
-#, –debug[=option_string]
跟踪程序的使用(为了调试)。
–help
显示一条帮助消息并且退出。
–fields-terminated-by=…
–fields-enclosed-by=…
–fields-optionally-enclosed-by=…
–fields-escaped-by=…
–fields-terminated-by=…
这些选择与-T选择一起使用并且有相应的LOAD DATA INFILE子句相同的含义。
LOAD DATA INFILE语法。
-F, –flush-logs
在开始导出前洗掉在MySQL服务器中的日志文件。
-f, –force,
即使我们在一个表导出期间得到一个SQL错误继续。
-h, –host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, –lock-tables.
为开始导出锁定所有表。
-t, –no-create-info
不写入表创建信息(CREATE TABLE语句
-d, –no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出这是很有用的
–opt
同–quick –add-drop-table –add-locks –extended-insert –lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, –password[=your_pass]
与服务器连接时使用的口令。如果你不指定“=your_pass”部分mysqldump需要来自终端的口令。
-P port_num, –port=port_num
与一台主机连接时使用的TCP/IP端口号。这用于连接到localhost以外的主机因为它使用 Unix套接字。
-q, –quick
不缓冲查询直接导出至stdout使用mysql_use_result()做它。
-S /path/to/socket, –socket=/path/to/socket
与localhost连接时它是缺省主机)使用的套接字文件。
-T, –tab=path-to-some-directory
对于每个给定的表创建一个table_name.sql文件它包含SQL CREATE 命令和一个table_name.txt文件它包含数据。注意这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据–fields-xxx和 –lines–xxx选项来定。
-u user_name, –user=user_name
与服务器连接时MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, –set-variable var=option
设置一个变量的值。可能的变量被列在下面。
-v, –verbose
冗长模式。打印出程序所做的更多的信息。
-V, –version
打印版本信息并且退出。
-w, –where=’where-condition’
只导出被选择了的记录注意引号是强制的
“–where=user=’jimf’” “-wuserid>1″ “-wuserid<1″
最常见的mysqldump使用可能制作整个数据库的一个备份
mysqldump –opt database > backup-file.sql
但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的
mysqldump –opt database | mysql –host=remote-host -C database
由于mysqldump导出的是完整的SQL语句所以用mysql客户程序很容易就能把数据导入了
shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
就是shell> mysql 库名 < 文件名

一、mysql权限管理
mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@’%’
grant insert on testdb.* to common_user@’%’
grant update on testdb.* to common_user@’%’
grant delete on testdb.* to common_user@’%’
或者用一条 mysql 命令来替代
grant select, insert, update, delete on testdb.* to common_user@’%’
二、grant 数据库开发人员创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 mysql 数据表结构权限。
grant create on testdb.* to developer@’192.168.0.%’;
grant alter on testdb.* to developer@’192.168.0.%’;
grant drop on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 外键权限。
grant references on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 临时表权限。
grant create temporary tables on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 索引权限。
grant index on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 视图、查看视图源代码 权限。
grant create view on testdb.* to developer@’192.168.0.%’;
grant show view on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 存储过程、函数 权限。
grant create routine on testdb.* to developer@’192.168.0.%’; - now, can show procedure status
grant alter routine on testdb.* to developer@’192.168.0.%’; - now, you can drop a procedure
grant execute on testdb.* to developer@’192.168.0.%’;
三、grant 普通 dba 管理某个 mysql 数据库的权限。
grant all privileges on testdb to dba@’localhost’
其中关键字 “privileges” 可以省略。
四、grant 高级 dba 管理 mysql 中所有数据库的权限。
grant all on *.* to dba@’localhost’
五、mysql grant 权限分别可以作用在多个层次上。
1. grant 作用在整个 mysql 服务器上
grant select on *.* to dba@localhost; - dba 可以查询 mysql 中所有数据库中的表。
grant all on *.* to dba@localhost; - dba 可以管理 mysql 中的所有数据库
2. grant 作用在单个数据库上
grant select on testdb.* to dba@localhost; - dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存储过程、函数上
grant execute on procedure testdb.pr_add to ’dba’@’localhost’
grant execute on function testdb.fn_add to ’dba’@’localhost’
六、查看 mysql 用户权限
查看当前用户自己权限
show grants;
查看其他 mysql 用户权限
show grants for dba@localhost;
七、撤销已经赋予给 mysql 用户权限的权限。
revoke 跟 grant 的语法差不多只需要把关键字 “to” 换成 “from” 即可
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
八、mysql grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后该用户只有重新连接 mysql 数据库权限才能生效。
2. 如果想让授权的用户也可以将这些权限 grant 给其他用户需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;
这个特性一般用不到。实际中数据库权限最好由 dba 来统一管理。
注意修改完权限以后 一定要刷新服务或者重启服务刷新服务用flush privileges。
查看用户权限
show  grants for 你的用户
比如
show grants for root@'localhost';

日志自动压缩移动脚本:
#!/bin/bash
logs_path="/usr/local/webserver/nginx/logs"  #日志存放位置
year=`date +%Y`            #年份
month=`date +%m`           #月份
day=`date +%Y%m%d`         #日期
time=`date +%Y%m%d-%H:%M:%S`   #时间
weblog="guoxin_access"   #web访问日志
1
<br>




CutNginxLog="/var/log/CutNginx.Log"    #分割nginx日志的记录
if [ $day -eq 1 ];then        #判断是不是月初1号如果条件成立则创建目录/home/wwwlog/年/月   
mkdir -p ${logs_path}$year/$month/
fi
cd $logs_path           #进入当前目录
tar jcf  access_$day.log.tar.bz2 access.log     #压缩日志文件
echo -n > access.log                                         #清空文件重新开始记录日志
DuAccess=`du -sh access_$day.log.tar.bz2 |awk '{print $1}'`     #统计tar的大小以便记录日志
mv access_$day.log.tar.bz2 ${logs_path}$year/$month/            #将日志文件移动到相应的目录下
echo "access_$day.log.tar.bz2 : $DuAccess     $time" >> $CutNginxLog    #记录日志
tar jcf  ${weblog}_$day.tar.bz2 $weblog.log
echo -n > $weblog.log
DuPcstars=`du -sh ${weblog}_$day.tar.bz2 |awk '{print $1}'`
mv ${weblog}_$day.tar.bz2 ${logs_path}$year/$month/
echo "${weblog}_$day.tar.bz2 : $DuPcstars     $time" >> $CutNginxLog
echo "" >> $CutNginxLog


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-234390-1-1.html 上篇帖子: ftp+nginx+lua_Nginx+GraphicsMagick来实现目录浏览、实时缩略图 下篇帖子: nginx配置文件详解 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表