日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六)

發布時間:2025/3/15 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上文:Linux服務器配置-VSFTP服務配置(五)

上文中已經介紹了使用數據庫文件方式配置虛擬用戶認證登錄FTP服務器,這篇文件將介紹通過數據庫方式(vsftpd服務+pam_mysql+MySQL)配置虛擬用戶認證登錄FTP服務器。

一、安裝配置MySQL數據庫

這里以在CentOS6中安裝MySQL5.7.25社區版和在RHEL7中安裝MySQL8.0.15社區版為例,下文中的示例圖片無特殊說明,均已在CentOS6中安裝MySQL5.7.25數據庫為主。另外,本人發布文章中的實例都是親自測試成功后發布的。

1、查看系統中是否安裝其他版本的MySQL數據庫。

rpm -qa | grep mysql

如果已安裝了其他版本的mysql-server,需先停止mysqld服務,再刪除安裝的mysql軟件包。

停止mysql服務

  • CentOS6系統

service mysqld stop

  • RHEL7或CentOS7系統

systemctl stop mysqld

根據所安裝的mysql軟件包,用 yum remove 或 rpm -e 命令刪除。

2、下載mysql的repo源。

在MySQL官網https://dev.mysql.com/downloads/repo/yum/,選擇適合的Linux平臺發行包,下載repo源。

或用wget命令在Linux系統中直接下載repo源rpm包。(以下為適合RHEL Linux/ Oracle Linux的發行版的rpm包)

  • CentOS6系統

wget https://dev.mysql.com/get/mysql80-community-release-el6-2.noarch.rpm

  • RHEL7或CentOS7系統

wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

3、安裝下載的軟件包。

安裝軟件包后,會獲得兩個mysql的repo源:/etc/yum.repos.d/mysql-community.repo 和 /etc/yum.repos.d/mysql-community-source.repo。

  • CentOS6系統

rpm -ivh /root/mysql80-community-release-el6-2.noarch.rpm

  • RHEL7或CentOS7系統

rpm -ivh /root/mysql80-community-release-el7-2.noarch.rpm

yum clean all

yum makecache

4、查看repo源當前啟用的是哪個MySQL版本的存儲庫。(即當前repo源支持的MySQL版本)

MySQL的不同發行版托管在不同的子存儲庫中。默認情況下啟用最新(當前為MySQL 8.0.15)的子存儲庫,并禁用所有其他版本的子存儲庫。使用以下命令查看MySQL Yum存儲庫中的所有子存儲庫及子存儲庫啟用或禁用狀態。

yum repolist all | grep mysql

在這里可以看出當前repo源支持的子存儲庫及已啟用了mysql插件、工具及8.0版本的子存儲庫。

5、設置repo源啟用哪個版本的子存儲庫。(即更換repo源當前支持的MySQL版本)

yum-config-manager --disable mysql80-community#關閉mysql8.0版本

yum-config-manager --enable mysql57-community #啟用mysql5.7版本

yum repolist all | grep mysql #查看mysql5.7版本子存儲庫是否開啟

除了使用以上命令之外,還可以通過手動編輯/etc/yum.repos.d/mysql-community.repo 文件來設置 ,將文件中相應MySQL版本的“enabled=”設置為1或0。(1表示啟用,0表示關閉)

注:如果需要安裝最新版本的MySQL數據庫,此步可省略。

6、安裝mysql-community(社區版)數據庫

yum install -y mysql-community-server

7、查看mysql的安裝版本。

mysqladmin -V

CentOS6系統

RHEL7系統

8、修改MySQL的配置文件(/etc/my.cnf)

備份配置文件

cp /etc/my.cnf /etc/my.cnf.bak

修改配置文件

vim /etc/my.cnf

#設置mysql數據字符集

character-set-server=utf8#MySQL-5.7版本

character-set-server=utf8mb4#MySQL-8.0版本

#設置mysql的端口號,默認為3306。

port=3306

設置mysql表名是否區分大小寫:0表示區分大小寫;1表示不區分大小寫

lower_case_table_names=1

9、啟動MySQL數據庫。

  • CentOS6系統

service mysqld start

  • RHEL7或CentOS7系統

systemctl start mysqld.service

10、查詢mysqld服務的運行狀態并設置為開機自啟。

  • CentOS6系統

service mysqld status#查詢mysqld服務運行狀態

chkconfig mysqld on#設置mysqld服務開機自啟

chkconfig --list | grep mysqld #查詢mysql服務開機自啟狀態

  • RHEL7或CentOS7系統

systemctl status mysqld #查詢mysqld服務運行狀態

systemctl enable mysqld#設置mysqld服務開機自啟

systemctl list-unit-files | grep mysqld#查詢mysql服務開機自啟狀態

11、查看MySQL數據庫root用戶的初始密碼。

cat /var/log/mysqld.log | grep 'A temporary password'

12、登錄MySQL數據庫并設置root用戶密碼。

a、配置MySQL用戶密碼復雜度說明

validate_password.policy=0

設置密碼強度檢查等級。

密碼強度檢查等級為:0 or LOW、1 or MEDIUM、2 or STRONG。有以下取值:

0 or LOW :測試項目為Length(密碼長度) 。

1 or MEDIUM:測試項目為Length; numeric, lowercase/uppercase, and special characters(密碼的長度、數字、大小寫和特殊字符) ,此項為默認值。

2 or STRONG:測試項目為Length; numeric, lowercase/uppercase, and special characters; dictionary file(密碼的長度、數字、大小寫、特殊字符和密碼字典文件。)

validate_password.dictionary_file

設置用于驗證密碼強度的字典文件路徑。

validate_password.mixed_case_count=0

設置密碼大小寫字符的長度

validate_password.number_count=0

設置密碼數字的長度

validate_password.special_char_count=0

設置密碼特殊字符的長度

validate_password.length=0

設置密碼的最小長度,默認為8。

注:validate_password.length 的長度要大于 validate_password.mixed_case_count + validate_password.number_count + validate_password.special_char_count 的和。

b、FLUSH PRIVILEGES—SQL語句使用說明

此SQL語句的作用是從內置的mysql庫中,將當前user和privilige表中的用戶信息與權限信息提取到內存中。MySQL用戶數據和權限被修改后,在“不重啟mysqld服務"的情況下直接生效。

c、首次登錄MySQL數據庫

首次登錄MySQL數據庫,需使用上步查詢到的初始密碼。登錄MySQL數據庫的命令為:mysql -u username -h host -P port -p password。

在MySQL-5.7版本以后,首次登錄MySQL數據庫,必須先修改root用戶密碼后才能進行其他數據庫操作,密碼要求至少8位,需要包含大小寫字母、數字和特殊字符。

注:下文中“mysql>”為數據庫中的命令提示符,其后為要執行的SQL語句。

#使用root用戶本地登錄MySQL數據庫。

mysql -u root -p

#修改root用戶密碼。(單引號內的password為新密碼)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

mysql> FLUSH PRIVILEGES;#刷新緩存

若想設置為簡單密碼如123456,則要通過以下SQL語句來設置。

  • MySQL-5.7版本

mysql> SET GLOBAL validate_password_policy=0; #設置用戶密碼的檢查強度

mysql> SET GLOBAL validate_password_length=6; #設置用戶密碼最小位數

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';#修改root用戶密碼

mysql> FLUSH PRIVILEGES;#刷新緩存

mysql> SELECT @@validate_password_policy;#查看用戶密碼的檢查強度設置

mysql> SHOW VARIABLES LIKE 'validate_password%'; #查看用戶密碼選項的設置

  • MySQL-8.0版本

mysql> SET GLOBAL validate_password.policy=0; #設置用戶密碼的檢查強度

mysql> SET GLOBAL validate_password.length=6;#設置用戶密碼最小位數

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';#修改root用戶密碼

mysql> FLUSH PRIVILEGES;#刷新緩存

mysql> SELECT @@validate_password.policy;#查看用戶密碼的檢查強度設置

mysql> SHOW VARIABLES LIKE 'validate_password%'; #查看用戶密碼選項的設置

以上只是臨時配置,若要永久生效可在MySQL配置文件(/etc/my.cnf)中,加入如下配置項,并重啟mysqld服務。

  • CentOS6系統

validate_password_policy=0

validate_password_length=6

  • RHEL7或CentOS7系統

validate_password.policy=0

validate_password.length=6

可通過quit命令退出MySQL數據庫。

13、安全設置MySQL數據庫

通過安全設置向導,對MySQL數據庫進行安全設置操作。

安全設置分為以下幾個選項:

  • 修改root用戶的密碼
  • 是否移除匿名用戶
  • 是否禁用root賬戶遠程登錄
  • 是否移除測試數據庫(test)
  • 是否重新加載授權表

在Linux系統中執行以下命令,運行安全設置向導。

mysql_secure_installation

14、遠程鏈接MySQL數據庫配置

建議在測試或開發環境下開啟root用戶遠程訪問MySQL數據庫的權限;在生產環境下,通過建立數據庫管理員DBA,并授予相應的權限來遠程管理數據庫。

a、改表法

通過修改mysql內置數據庫中user表host字段的值,可使root或其他用戶遠程訪問MySQL數據庫。

使用root用戶登錄MySQL數據庫。

mysql -u root -p #登錄MySQL數據庫

mysql> USE mysql; #轉到名為mysql的內置數據庫

mysql> SELECT user,host FROM user;#查詢user表的記錄(僅顯示出user列和host列)。

mysql> UPDATE user SET host = '%' WHERE user = 'root';#修改user表,user字段=root的host字段值為%。(也就是設置root用戶可使用任何地址遠程訪問數據庫,%表示任何地址。)

mysql> FLUSH PRIVILEGES;#刷新緩存

mysql> SELECT user,host FROM user;#查詢user表的記錄(僅顯示出user列和host列)。

b、授權法

mysql -u root -p #登錄MySQL數據庫

mysql> USE mysql; #轉到名為mysql的內置數據庫

  • 在MySQL-8.0版本中

mysql> CREATE USER 'admin'@'192.168.1.%' IDENTIFIED BY '123456'; #創建新用戶、設置密碼并設置允許遠程訪問的IP地址段(用戶名admin、密碼123456、可遠程訪問的IP地址段為192.168.1.0)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.1.%' WITH GRANT OPTION; #設置新建用戶對所有數據庫對象具有全部的操作權限。(MySQL 賦予用戶權限的SQL語句的簡單格式為:GRANT 權限 ON 數據庫對象 TO 用戶,如果要使該用戶可以將自己擁有的權限授權給別人,可加上WITH GRANT OPTION選項。)

mysql> FLUSH PRIVILEGES;#刷新緩存

mysql> SHOW GRANTS FOR 'admin'@'192.168.1.%';#查看新建用戶的權限

  • 在MySQL-5.7版本中

mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.1.%' IDENTIFIED BY '123456' WITH GRANT OPTION; #MySQL8.0以下的版本,創建用戶和設置用戶權限,可以使用一條SQL語句完成。

mysql> FLUSH PRIVILEGES;#刷新緩存

mysql> SHOW GRANTS FOR 'admin'@'192.168.1.%';#查看新建用戶的權限

15、防火墻配置

  • CentOS6系統

iptables -t filter -I INPUT -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT #添加防火墻規則

service iptables save#保存防火墻規則

service iptables restart #重啟防火墻

iptables -t filter --line-number -nL INPUT#查看現有防火墻規則

  • RHEL7或CentOS7系統

firewall-cmd --permanent --zone=public --add-port=3306/tcp#添加防火墻規則

firewall-cmd --reload#重載防火墻

firewall-cmd --list-all #查看現有防火墻規則

16、遠程鏈接MySQL數據庫驗證

在Linux系統中使用MySQL客戶端驗證遠程鏈接

mysql -u admin -h 192.168.1.90 -p

在Windows系統中使用Navicat Premium 12工具遠程鏈接

二、安裝pam-mysql

1、CentOS6系統yum方式安裝

a、安裝EPEL repo源

yum install -y epel-release 或 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum clean all

yum makecache

b、安裝pam-mysql

yum install -y pam_mysql

2、RHEL7或CentOS7系統安裝

a、下載pam_mysql-0.8.1-0.22.el7.lux.x86_64.rpm包

wget http://repo.iotti.biz/CentOS/7/x86_64/pam_mysql-0.8.1-0.22.el7.lux.x86_64.rpm

b、安裝下載的軟件包

rpm -ivh pam_mysql-0.8.1-0.22.el7.lux.x86_64.rpm

3、查詢pam_mysql.so是否存在

find / -name pam_mysql.so

三、實例說明通過數據庫方式(vsftpd服務+pam_mysql+MySQL)配置虛擬用戶認證登錄FTP服務器。

1、配置軟件環境說明。

CentOS6系統

  • CentOS release 6.10 (Final)
  • vsftpd-2.2.2-24.el6.x86_64
  • MySQL-5.7.25
  • pam_mysql-0.7-0.12

RHEL7系統

  • Red Hat Enterprise Linux Server release 7.6 (Maipo)
  • vsftpd-3.0.2-25.el7.x86_64
  • MySQL-8.0.15
  • pam_mysql-0.8.1-0.22

服務器配置要求:

  • FTP服務采用被動模式運行,只允許虛擬用戶登錄,并將被動端口鎖定在59800-59900之間。
  • 虛擬用戶信息保存在MySQL數據庫中。
  • 虛擬用戶snowfox為FTP管理員,其FTP根目錄設定在/var/vftproot目錄中,該用戶具有可下載、上傳、新建目錄(文件)、更名、及刪除文件的權限。
  • 虛擬用戶wendy為一般用戶,其FTP根目錄設定在/var/vftproot/wendy目錄中(即只能訪問自己的FTP目錄),該用戶具有可下載、上傳、新建目錄(文件)、更名、及刪除文件的權限。
  • 虛擬用戶itcat為一般用戶,其FTP根目錄設定在/var/vftproot目錄中(即可訪問其他用戶FTP目錄),該用戶只有查看和下載文件的權限。

2、創建本地映射用戶,并設置FTP目錄的權限。

adduser -d /var/vftproot -s /sbin/nologin virftp

chmod -R 755 /var/vftproot

3、配置MySQL數據庫,用于vsftp虛擬用戶數據庫認證登錄。

a、創建vsftp虛擬用戶數據庫認證登錄所需要的庫文件。

登錄MySQL,創建vsftpdb數據庫。

mysql -u root -p

mysql> CREATE DATABASE vsftpdb;

b、在vsftpdb數據庫中創建用戶表vsftp_users。

mysql> USE vsftpdb; #使用vsftpdb數據庫

mysql> select database(); #查看當前用戶所使用的數據庫

mysql> CREATE TABLE vsftp_users( #建立vsftp用戶表vsftp_users

user_id SMALLINT AUTO_INCREMENT NOT NULL, #設置表的用戶id字段

user_name CHAR(20) NOT NULL, #設置表的用戶名字段

user_password CHAR(48) BINARY NOT NULL, #設置表的用戶密碼字段

PRIMARY key(user_id)); #設置表的主鍵為user_id字段

mysql> DESC vsftp_users; #查看vsftp_users表結構的詳細信息

c、在vsftp_users表中批量添加vsftp虛擬用戶信息

mysql> INSERT INTO vsftp_users (user_name,user_password) VALUE

('snowfox',MD5('666666')),

('wendy',MD5('666666')),

('itcat',MD5('666666'));

mysql> SELECT * FROM vsftp_users; #查詢vsftp_users表的所有記錄

d、添加FTP數據庫用戶vsftp,并設置此用戶只有查詢vsftpdb數據庫中的所有表的權限。

mysql> USE mysql;

mysql> CREATE USER 'vsftp'@'localhost' IDENTIFIED BY 'vsftpd';#創建新用戶并設置密碼

mysql> GRANT SELECT ON vsftpdb.* TO 'vsftp'@'localhost'; #設置新建用戶并對其設置相關權限

mysql> FLUSH PRIVILEGES; #刷新緩存

mysql> SHOW GRANTS FOR 'vsftp'@'localhost'; #查看新建用戶的權限

MySQL-8.0數據庫

由于MySQL-8.0之前版本的加密規則是mysql_native_password,而MySQL-8.0的加密規則是caching_sha2_password,所以數據庫用戶在使用pam_mysql.so與MySQL-8.0版本的數據庫鏈接時,需要修改相應數據庫用戶的加密規則為mysql_native_password。

mysql> ALTER USER 'vsftp'@'localhost' IDENTIFIED WITH mysql_native_password BY 'vsftpd';

mysql> FLUSH PRIVILEGES;

4、建立PAM認證文件

在/etc/pam.d/目錄中創建用于vsftp的PAM認證文件。

vim /etc/pam.d/vsftpd.mysql

加入以下語句

auth required /lib64/security/pam_mysql.so user=vsftp passwd=vsftpd host=localhost db=vsftpdb table=vsftp_users usercolumn=user_name passwdcolumn=user_password crypt=3

account required /lib64/security/pam_mysql.so user=vsftp passwd=vsftpd host=localhost db=vsftpdb table=vsftp_users usercolumn=user_name passwdcolumn=user_password crypt=3

注意pam_mysql.so文件的路徑。

說明:

pam_mysql.so模塊選項

-- verbose 設置為1則顯示詳細的調試信息,默認0

-- debug 開啟調試模式

-- user mysql數據庫認證的用戶名

-- passwd mysql數據庫認證的密碼

-- host mysql數據庫的主機名稱或IP

-- db 包含驗證信息的數據庫名稱

-- table 包含驗證信息的數據庫表名稱

-- usercolumn 包含驗證的用戶名列

-- passwdcolumn 包含驗證的密碼列

-- crypt 密碼加密方式,

0 無加密,默認為此值;

1 使用crypt(3)函數加密;

2 使用MySQL的PASSWORD函數加密;(在mysql8.0中已經取消此函數)

3 使用普通十六進制md5加密;

4 使用普通十六機制SHA1加密;

-- sqllog 設置為“true”或“yes”,則啟用SQL日志記錄,默認false

-- logtable 存儲日志的表名稱

-- logmsgcoumn 該列存儲日志的消息

-- logusercolumn 該列存儲產生日志的用戶名

-- logpidcolumn 該列存儲產生日志的進程PID

5、修改vsftpd配置文件。

備份原配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

修改配置文件

vim /etc/vsftpd/vsftpd.conf

具體修改請參閱上篇文章—Linux服務器配置-VSFTP服務配置(五),這里就不再說明。

請注意修改以下配置項:

pam_service_name=/etc/pam.d/vsftpd.mysql

6、為虛擬用戶單獨創建配置文件及相應目錄,已調整各個虛擬用戶的不同訪問權限。

具體修改請參閱上篇文章—Linux服務器配置-VSFTP服務配置(五),這里就不再說明。

7、防火墻配置

vsftpd服務的防火墻配置已在—Linux服務器配置-VSFTP服務配置(三)中加以說明,這里不再重復。

8、SELinux設置

  • CentOS6系統

更改vsftp的SELinux布爾變量

setsebool -P ftp_home_dir on

setsebool -P allow_ftpd_full_access on

  • RHEL7系統

setsebool -P ftpd_full_access on

9、重啟vsftpd服務

  • CentOS6系統

service vsftpd restart

  • RHEL7系統

systemctl restart vsftpd

10、驗證配置結果

11、VSFTP與MySQL部署在不同的服務器上

以上實例是VSFTP與MySQL安裝在一臺服務器上的配置,如果將這兩個服務安裝在不同的服務器上,例如vsftpd服務安裝在地址為192.168.1.100的服務器上,MySQL數據庫安裝在地址為192.168.1.200的服務器上,配置與上面基本相同,不同之處說明如下。

① 添加FTP數據庫用戶時,添加的是遠程鏈接用戶,遠程地址是vsftp服務器的地址。

CREATE USER 'vsftp'@'192.168.1.100' IDENTIFIED BY 'vsftpd';

② 創建用于vsftp的PAM認證文件時,host選項為MySQL服務器的地址。

auth required /lib64/security/pam_mysql.so user=vsftp passwd=vsftpd host=192.168.1.200 db=vsftpdb table=vsftp_users usercolumn=user_name passwdcolumn=user_password crypt=3

account required /lib64/security/pam_mysql.so user=vsftp passwd=vsftpd host=192.168.1.200 db=vsftpdb table=vsftp_users usercolumn=user_name passwdcolumn=user_password crypt=3

以上是我在學習Linux系統中整理的一些學習要點,肯定會有不對的地方,希望各位大俠給與指正,我們共同學習!謝謝!

總結

以上是生活随笔為你收集整理的centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。