国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 實戰開發之Nginx、Mysql環境安裝(二)

shusen / 2700人閱讀

摘要:你賦權語句是也就是針對這個數據庫賦權。這就是的權限檢查模塊的工作過程。并不是你出現了錯誤,而是的內部機制就是這樣的。這里面對的權限機制做了詳細的講解。

本節會安裝Nginx,Mysql.
一、Nginx反向代理服務器 1、Nginx簡介

Nginx是一款輕量級Web服務器、也是一款反向代理服務器.

作用:
(1)、可以直接支持Rails和PHP的程序
(2)、可作為HTTP反向代理服務器
(3)、作為負載均衡服務器
(4)、作為郵件代理服務器
(5)、幫助實現前端動靜分離

特點:
高穩定、高性能、資源占用少、支持熱部署

2、Nginx安裝

安裝環境:centOS 6.8 64位
安裝版本:1.0.2

安裝步驟:

安裝gcc(命令:yum install gcc,可輸入 gcc -v 查詢系統是否自帶安裝)

安裝pcre(命令:yum install pcre-devel)

安裝zlib(命令:yum install zlib zlib-devel)

安裝openssl(命令:yum install openssl openssl-devel,如需支持ssl,才需安裝openssl)

綜合命令:

yum install gcc pcre-devel zlib zlib-devel openssl openssl-devel

5.下載源碼包,選擇穩定版本,解壓縮安裝(http://www.nginx.org/)

wget http://nginx.org/download/nginx-1.10.2.tar.gz

6.解壓縮

tar -zxvf nginx-1.10.2.tar.gz

7.進入Nginx目錄之后執行 ./configure
1)、也可以指定安裝目錄,增加參數 --prefix=/usr/nginx
2)、如果不指定路徑,可以通過 whereis nginx 來查詢

8.繼續執行 make
9.繼續執行 make install

默認安裝在 /usr/local/nginx

安裝成功之后,可以測試訪問,默認是80端口:

3、Nginx常用命令 1.測試配置文件

安裝路徑下的 /nginx/sbin/nginx -t

2.啟動命令

安裝路徑下的 /nginx/sbin/nginx

/usr/local/nginx/sbin/nginx
3.停止命令

安裝路徑下的 /nginx/sbin/nginx -s stop
或:nginx -s quit

4.重啟命令

安裝路徑下的 /nginx/sbin/nginx -s reload

5.查看進程命令
ps -ef | grep nginx
6.平滑重啟

kill -HUP [Nginx主進程號(即查看進程命令查到的PID)]

7.增加防火墻訪問權限
sudo vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

重啟防火墻:

sudo service iptables restart
4、Nginx虛擬域名配置及測試 網站域名配置

修改配置文件:

[root@corwien conf]# pwd
/usr/local/nginx/conf

# 添加文件夾
mkdir vhost

編輯nginx配置文件:

vim nginx.conf

nginx.conf 配置文件

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
    #                  "$status $body_bytes_sent "$http_referer" "
    #                  ""$http_user_agent" "$http_x_forwarded_for"";

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache"s document root
        # concurs with nginx"s one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

    include vhost/*.conf;
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

編輯hosts配置文件:

 vim /etc/hosts

編輯域名配置:

[root@corwien vhost]# pwd
/usr/local/nginx/conf/vhost
[root@corwien vhost]# vim www.emall.com.conf
server {
     listen 80;
     autoindex on;
     server_name www.emall.com;
     access_log /usr/local/nginx/logs/access.log combined;
     index index.html index.htm index.jsp index.php;
     # root /product/ftpfile/;
     #error_page 404 /404.html;
     if ( $query_string ~* ".*[;"<>].*" ){
         return 404;
      }
      location / {
          proxy_pass http://127.0.0.1:8080;
          add_header Access-Control-Allow-Origin *;
       }

}

驗證:

(1)先開啟Tomcat服務

# 開啟Tomcat服務
/developer/apache-tomcat-7.0.82/bin/startup.sh

(2)使用域名 www.emall.com 訪問:

我們可以看到,可以正常訪問。

圖片文件夾域名配置

創建配置:

[root@corwien vhost]# pwd
/usr/local/nginx/conf/vhost
[root@corwien vhost]# vim image.emall.com.conf

編輯圖片目錄域名配置文件

server {
     listen 80;
     autoindex off;
     server_name image.emall.com;
     access_log /usr/local/nginx/logs/access.log combined;
     index index.html index.htm index.jsp index.php;
     # root /product/ftpfile/;
     #error_page 404 /404.html;
     if ( $query_string ~* ".*[;"<>].*" ){
         return 404;
      }

     location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {
         deny all;
      }

      location / {
          root /ftpfile/;
          add_header Access-Control-Allow-Origin *;
       }

}

如果我們使用 image.emall.com/m.jpg 文件,會出現404的問題,因為我們的域名配置文件有誤,應該添加后綴名 /usr/local/nginx/conf/vhost/image.emall.com 改為
/usr/local/nginx/conf/vhost/image.emall.com.conf,因為我們在 nginx.conf 配置文件中這樣加載的 include vhost/*.conf;

靜態資源域名配置
[root@corwien vhost]# vim s.emall.com.conf

編輯 s.emall.com.conf:

server {
     listen 80;
     autoindex off;  # 是否自動創建索引,如果開啟則會列出下面目錄文件的索引
     server_name s.emall.com;
     access_log /usr/local/nginx/logs/access.log combined;
     index index.html index.htm index.jsp index.php;
     # root /product/ftpfile/;
     #error_page 404 /404.html;
     if ( $query_string ~* ".*[;"<>].*" ){
         return 404;
      }

     location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {
         deny all;
      }

      location / {
          root /product/front/;
          add_header Access-Control-Allow-Origin *;
       }

}

配置之后,需要重啟Nginx服務器:

[root@corwien nginx]# sbin/nginx -s reload
二、MySQL安裝 1、安裝環境

系統環境:CentOS 6.8 64位
MySQL版本:mysql-server-5.1.73(阿里軟件源默認帶的版本)

2、MySQL下載
yum -y install mysql-server

可以通過 rpm -qa | grep mysql-server 此語句來檢查是否已經安裝mysql-server

mysql 默認配置文件在 /etc/my.cnf

(2)、字符集配置:

vim /etc/my.cnf

添加配置,在[mysqld]節點下添加:

default-character-set=utf8
character-set-server=utf8

:wq保存退出

/etc/my.cnf文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 設置字符集[20180107]
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

關于中文亂碼問題:
在5.1版本,為了解決中文亂碼問題,my.ini內[mysql]和[mysqld]中都寫:

default-character-set=utf8

在5.5版本,[mysql]內可以這么寫,[mysqld]內不能再這么寫了,而是寫:

character-set-server=utf8
3、開機自啟動配置

(1)、執行 chkconfig mysqld on
(2)、執行 chkconfig --list mysqld查看(如果2-5位啟用on狀態即OK)

(3)、啟動MySQL

service mysqld start

(4)、登錄mysql
無密碼登錄

[root@corwien corwien]# mysql -u root
4、防火墻配置

(1)、vim /etc/sysconfig/iptables
(2)、-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT 將以上配置添加到防火墻配置中
(3)、sudo service iptables restart 執行命令重啟防火墻

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

5、刪除匿名用戶

(1)、查看目前MySQL的用戶

select user,host,password from mysql.user

我們可以看到有兩個匿名用戶,出于安全考慮,我們把匿名用戶刪掉:

mysql> delete from mysql.user where user = "";

刪除匿名用戶,執行以下SQL(安全考慮)
查看是否有匿名用戶:select user, host from mysql.user;
刪除匿名用戶:delete from mysql.user where user="";
刷新、使以上操作生效:flush privileges

6、創建用戶
mysql> insert into mysql.user(Host,User,Password) values("localhost", "emall", password("518666"));
7、修改用戶權限

查看所有用戶權限:

mysql> select * from mysql.user G;

G 表示對輸出的內容進行格式化

G 格式化之后輸出的數據:

我們可以看到,剛才添加的新用戶 emall 的權限都為N,所以這里要對這個用戶權限做開放:

根據自己實際情況決定是否開放什么權限

語法模板:

grant all privileges on 庫名.表名 to "用戶名"@"IP地址" identified by "密碼" with grant option;
flush privileges;
庫名:要遠程訪問的數據庫名稱,所有的數據庫使用“*” 
表名:要遠程訪問的數據庫下的表的名稱,所有的表使用“*” 
用戶名:要賦給遠程訪問權限的用戶名稱 
IP地址:可以遠程訪問的電腦的IP地址,所有的地址使用“%” 
密碼:要賦給遠程訪問權限的用戶對應使用的密碼

舉例:

GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "lxh" WITH GRANT OPTION; # 所有的地址都可以使用root用戶,密碼為lxh遠程訪問所有的數據庫
flush privileges;
GRANT ALL PRIVILEGES ON testdb.* TO "lxh"@"172.16.52.225"  IDENTIFIED BY "lxh" WITH GRANT OPTION; # IP為172.16.52.225的電腦可以使用lxh用戶,密碼為lxh遠程訪問數據庫testdb的所有表

賦予emall這個用戶所有權限:

mysql> grant all privileges on emall.* to emall@"%" identified by "518666" with grant option;

或者只賦予查增改權限,不讓此用戶對數據庫進行刪除操作:

mysql> grant select,update,create on emall.* to emall@"%" identified by "emall" with grant option;

我們再查看授權是否成功:

mysql> select * from mysql.user G;

已經授過權了,為什么這里還是N呢?

原因是:select * from mysql.user G;給出的是全局的權限,而不是針對某個DB或者SCHEMA得權限。你賦權語句是grant all privileges on emall.* to "emall"@"%" identified by "518666" with grant option;也就是針對emall這個數據庫賦權。那么你自然會得出權限都是‘N’了。

那么,這是不是錯誤的呢?答案當然不是了。
具體的流程是這樣的:假如你有一個SQL的query,比如是select * from emall.table1。mysql會首先去user表中對比你(emall@localhost)是否有select 權限?發現是N.然后,它并不會直接拒絕這個query,而是會繼續對照Database級別上檢驗權限,會db.user="emall" and db.db="emall" and db.host="localhsot",如果檢驗通過,則通過,否則繼續向下檢驗,host.db="emall" and host.host="localhost",若檢驗通過,則通過,否則繼續向下檢驗table級別,然后是column級別。

這就是mysql的權限檢查模塊的工作過程。

并不是你出現了錯誤,而是mysql的內部機制就是這樣的。
建議你仔細看下這篇文章http://tech.it168.com/a2010/0...。這里面對mysql的權限機制做了詳細的講解。

相關文章:
mysql grant 授權不起作用

所以,這里我們給所有庫授權,則這里的權限即可為Y:

mysql> grant all privileges on *.* to emall@"%" identified by "518666" with grant option;

8、修改root密碼
set password for root@localhost=password("yourpassword");

set password for root@127.0.0.1=password("yourpassword");

設置root密碼:

mysql> set password for root@127.0.0.1=password("root");
Query OK, 0 rows affected (0.00 sec)

重新登錄:

mysql -uroot -p
9、創建數據庫

查看所有數據庫:

mysql> show databases;

創建數據庫:

mysql> create database `emall` default character set utf8 collate utf8_general_ci;
10、忘記root密碼解決方法

密碼太多記不住??你是否忘記了MySQL的root密碼? 通過以下4步就可重新設置新密碼:

停止 mysql server

service mysqld stop

2.打開終端,輸入:

找到mysql安裝目錄:

[root@corwien download]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@corwien download]# /usr/bin/mysqld_safe --skip-grant-tables

3.打開另一個新終端,輸入:

[root@corwien corwien]# /usr/bin/mysql -u root

mysql>  UPDATE mysql.user SET authentication_string=PASSWORD("root") WHERE User="root";
ERROR 1054 (42S22): Unknown column "authentication_string" in "field list"
mysql>  UPDATE mysql.user SET password=PASSWORD("root") WHERE User="root";
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3  Changed: 2  Warnings: 0

mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

4.然后重啟mysql,重新登錄:

[root@corwien corwien]# service mysqld start
[root@corwien corwien]# mysql -uroot -p
Enter password:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39754.html

相關文章

  • Java 實戰開發NginxMysql環境安裝

    摘要:你賦權語句是也就是針對這個數據庫賦權。這就是的權限檢查模塊的工作過程。并不是你出現了錯誤,而是的內部機制就是這樣的。這里面對的權限機制做了詳細的講解。 本節會安裝Nginx,Mysql. 一、Nginx反向代理服務器 1、Nginx簡介 Nginx是一款輕量級Web服務器、也是一款反向代理服務器. 作用:(1)、可以直接支持Rails和PHP的程序(2)、可作為HTTP反向代理服務器(...

    yedf 評論0 收藏0
  • 寫這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現在也是一直保持著更新狀態。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...

    JerryWangSAP 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<