MySQL資料庫安裝
安裝環境: 騰訊云:Centos7系統,1核1GB記憶體,1M帶寬,磁盤50G
一、安裝前準備
引言:Centos7版本將MySQL資料庫軟體從默認的程式串列中移除,使用mariadb代替,在使用yum進行安裝前需要先安裝yum源
下載yum源并進行安裝
step1:通過官網獲取yum下載源,然后使用wget工具進行獲取,

step 2:將官網生成的下載鏈接復制到wget命令后
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

step 3:安裝倉庫
rpm -ivh mysql57-community-release-el7-11.noarch.rpm

安裝MySQL資料庫
注:安裝MySQL資料庫(默認安裝的是最新版本5.7,如果考慮記憶體,可以安裝5.6,相對于5.7版本,5.6安裝包會小很多)
step 1:安裝MySQL
yum install mysql-community-server

補充: 在MySQL
Yum存盤庫中(http://repo.mysql.com/yum/),MySQL社區服務器的不同版本系列托管在不同的子倉庫中,默認情況下,最新的GA系列(目前為MySQL
5.7)的子倉庫已啟用(enabled),默認情況下禁用所有其他系列(例如,MySQL 5.6系列)的子倉庫(disabled),使用
yum repolist all | grep mysql可以查看MySQL Yum存盤庫中的所有子倉庫
注:由上圖可見5.7版本標記為“啟用”,默認“啟用”,所有,若想安裝最新版本的mysql穩定版本可以之間安裝,無需配置yum install mysql-community-server若想用其他版本的mysql,需要進行配置,如使用mysql 56版本,執行如下命令:(Centos7支持yum-config-manager命令)
yum-config-manager –disable mysql57-communityyum-config-manager –enable mysql56-community在任何時間只能啟用一個版本系列的子鏈接,當啟用了多個版本系列的子倉庫時,Yum將使用最新的系列,查看已經啟用的子倉庫可以使用一下命令:
yum repolist enble | grep mysql
Step 2:啟動MySQL服務
剛剛完成mysql的安裝,mysql默認是沒有啟動的,可以通過下面命令進行查看
查看mysql服務狀態
systemctl status mysqld.service
查看當前的mysql服務器狀態是關閉的

啟動mysql服務后,查看mysql服務狀態:
systemctl start mysqld.service
systemctl status mysqld.service

補充:
關閉mysql服務:systemctl stop mysqld.service
重啟mysql服務:systemctl restart mysqld.service
Step 3:增強MySQL
mysql在安裝完成之后,默認情況下,MySQL將系結到localhost(127.0.0.1),允許在公共IP上不受限制地訪問MySQL是不推薦的,一般來說會去修改
/etc/my.cnf組態檔中的bind-address引數來更改其監聽的地址,如果決定將MySQL系結到公共IP,應該實作只允許來自特定IP地址的連接的防火墻規則
mysql5.7在yum安裝的時候已經默認安裝該安全增強,但是需要進行密碼的修改;而mysql5.6是需要進行mysql增強的設定的,
mysql 5.7修改密碼:
1.查看臨時密碼
首次安裝mysql后,會分配一個臨時密碼,通過如下命令進行查看
grep "password" /var/log/mysqld.log

2.登錄mysql
mysql -uroot -p
輸入臨時密碼

3.修改密碼
直接進行密碼的修改,會由于密碼的安全度不滿足報錯:
alter user 'root'@'localhost' identified by '123456';
錯誤如下:
若是修改簡單的密碼,可執行如下操作進行規避這個錯誤:
set global validate_password_policy=0;
set global validate_password_length=1;

修改完成后,進行密碼的修改:
alter user 'root'@'localhost' identified by '123456'

密碼修改完成,可使用新密碼進行登錄,
知識點補充:MySQLvalidate_password_policy策略介紹
*MySQL默認安裝了密碼安全檢查插件(
validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,并且長度不能少于8位,修改密碼時新密碼是否符合當前的策略,不滿足則會提示ERROR
1819 (HY000): Your password does not satisfy the current policy requirements錯誤
![]()
0 or LOW:校驗級別最低,只校驗密碼長度,只要長度跟validate_password_length一樣即可,默認長度是8位,
1 or MEDIUM:滿足validate_password_policy=0,并且必須含有數字,小寫或大寫字母,特殊字符,
2 or STRONG:滿足0,1的要求,且密碼中任意連續4個(或4個讓上)字符不得是字典中的單詞修改
validate_password_policy set global validate_password_policy=0;
查詢修改后的validate_password_policy
select @@validate_password_policy;
查看密碼長度validate_password_length的值
select @@validate_password_length;
> validate_password_length引數默認為8,它有最小值的限制,最小值為:
validate_password_number_count
? validate_password_special_char_count
? validate_password_mixed_case_count * 2
不管設定validate_password_length=1,還是2,3,4 ,密碼長度實際值都是4,超過4后為設定的值,mysql5.7.x中密碼控制的變數
Policy Tests Performed 默認值 說明 validate_password_policy medium 用于驗證validate_password的驗證策略 validate_password_length 8 密碼長度的最小值(最小值4) validate_password_number_count 1 密碼中數字最少個數 validate_password_mixed_case_count 1 密碼中大小寫字符最少個數 validate_password_special_char_count 1 密碼中特殊字符最小個數 validate_password_dictionary_file 字典檔案
mysql5.6安全增強
程式mysql_secure_installation 允許執行重要操作,如設定root密碼,洗掉匿名用戶,始終運行它以確保mysql5.6安裝:
mysql_secure_installation
Step 4:資料庫授權
資料庫沒有授權,只支持localhost本地訪問,可通過如下命令進行授權:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
授權后,重繪
flush privileges;

Step 5:設定開啟自啟動
systemctl enble mysqld
systemctl daemon-reload

Step 6:修改MySQL字符集
修改mysql字符集字符設定應用于服務器范圍,并應用于任何應用程式創建的資料庫的默認值,以及在這些資料庫中創建的表,
修改MySQL的組態檔my.cnf,檔案默認位置:/etc/my.cnf
vi /etc/my.cnf
在[mysqld]結束位置添加:
character_set_server=utf8
collation-server=utf8_general_ci
Step 7:重啟MySQL,檢查生效
重啟mysql服務
***停止命令:***
systemctl stop mysqld.service
***啟動命令:***
systemctl start mysqld.service
***查看狀態:***
systemctl status mysqld.service
***查看修改后的mysql字符集***
show variables like ‘character_set_%’
重啟前:

重啟后:

Step 8:遠程連接MySQL
遠程連接mysql:
Mysql賬戶登錄權限相關的知識:
1、 mysql服務器中用戶的資訊保存在資料庫名為mysql的資料庫中的user表中,輸入下列命令可查看用戶的登錄權限,
select distinct concat(‘User:”’,user,”’@”’,host,”’;’) as query from mysql.user;

2、 創建遠程連接用戶 wzg密碼 123456任何主機上訪問資料庫 dbTest該資料庫的所有操作權限
登錄mysql:
mysql -uroot –p
mysql> create database dbTest;
mysql> create user ‘wzg’@’%’ identified by ‘123456’;
報錯:

修改密碼校驗級別:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
重新創建用戶:
mysql> create user ‘wzg’@’%’ identified by ‘123456’;

給新建用戶授權:
grant all on dbTest.* to 'wzg' identified by '123456';

知識點補充:
create user ‘xxx’ @ ’%’ identified by‘xxx’;xxx分別表示用戶名和密碼,這里的 % 百分號表示任意IP主機
create user ‘xxx’ @ ’139.199.201.55’ identified by‘xxx’;%百分號可以用具體的IP地址代替,那么該用戶就只能從該指定的ip主機上連接mysql服務器
create user ‘xxx’ @ ’localhost’ identified by ‘xxx’;標記為localhost那么就只能從服務器上訪問mysql資料庫,禁止遠程連接
grant all表示授予所有權限,但是不建議授予所有權限,對于普通用戶,建議使用GRANT SELECT,INSERT,UPDATE,DELETE,
on dbTest.*表示授予的范圍為dbchen資料庫的所有表,當然你也可以指定某個特定的表,例如僅指定student表 on dbchen.student
mysql> flush privileges;//重繪一下
對于用戶的增刪改以及權限控制,實際上都是操作mysql.user這張表,按正常的來就可以了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229120.html
標籤:其他
上一篇:Docker中的網路詳解
下一篇:Centos下安裝oneAPI基礎工具包(Intel? oneAPI Base Toolkit)和高性能計算工具包(Intel? oneAPI HPC Toolkit)




