天天看點

rpm方式安裝 mysql5.7.29一、rpm方式安裝 mysql5.7.29二、更改mysql資料存儲目錄

一、rpm方式安裝 mysql5.7.29

1.下載下傳mysql5.7.29的rpm安裝包

     rpm的mysql包,安裝起來簡單,解壓版的mysql還需要做許多配置,稍有不慎就會出錯!!!

下載下傳位址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

2.上傳mysql安裝包到centos7的系統下

3.安裝依賴

3.1 檢視linux上是否已經安裝了mysql,有則解除安裝。

一般centos7預設安裝了mariadb,這裡把它解除安裝。

檢視:[[email protected] bin]# rpm -qa|grep mariadb

解除安裝:[[email protected] bin]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3.2 安裝mysql5.7所需要的依賴

[[email protected] src]# yum install libaio

[[email protected] src]# yum install perl

[[email protected] src]# yum install net-tools

4.安裝mysql5.7

4.1 解壓mysql5.7安裝包

[[email protected] src]# tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar

解壓完後會有很過rpm檔案,這些就是我們需要安裝的。

4.2 安裝mysql5.7

[[email protected] src]# rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm

[[email protected] src]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm

[[email protected] src]# rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm

[[email protected] src]# rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm

如果有報錯的情況 可以加 --force --nodeps 參數

如:[[email protected] src]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm --force --nodeps

4.3 檢視mysql5.7的狀态,沒有啟動則把mysql啟動

檢視mysql啟動狀态

[[email protected] src]# service mysqld status

出現下面這個death就是沒有啟動,新裝的第一次是沒有啟動的。

啟動mysql       active(running)代表啟動成功

[[email protected] src]# service mysqld start

4.4 修改密碼

檢視臨時密碼:得知臨時密碼就是如圖

[[email protected] src]# grep password /var/log/mysqld.log

用臨時密碼登入mysql

[[email protected] src]# mysql -uroot –p

修改成新的密碼

mysql> set password = password("Admin123&");

有時候,隻是為了自己測試,不想密碼設定得那麼複雜,譬如隻想設定root的密碼為123456。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

但是會報錯:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
           

【原因】

原來MySQL5.6.6版本之後增加了密碼強度驗證插件validate_password,相關參數設定的較為嚴格。

使用了該插件會檢查設定的密碼是否符合目前設定的強度規則,若不滿足則拒絕設定。影響的語句和函數有:create user,grant,set password,password(),old password。

【解決】

mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)
 
 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.08 sec)
           

1) 檢視mysql全局參數配置

該問題其實與mysql的validate_password_policy的值有關。

檢視一下msyql密碼相關的幾個全局參數:

2)參數解釋

validate_password_dictionary_file

插件用于驗證密碼強度的字典檔案路徑。

validate_password_length

密碼最小長度,參數預設為8,它有最小值的限制,最小值為:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

validate_password_mixed_case_count

密碼至少要包含的小寫字母個數和大寫字母個數。

validate_password_number_count

密碼至少要包含的數字個數。

validate_password_policy

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

Policy                  Tests Performed                                                                                                        
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      
           

預設是1,即MEDIUM,是以剛開始設定的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。

validate_password_special_char_count

密碼至少要包含的特殊字元數。

3)修改mysql參數配置

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
 
mysql> 
mysql> 
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file    |       |
| validate_password_length             | 3     |
| validate_password_mixed_case_count   | 0     |
| validate_password_number_count       | 3     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 0     |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
           

4)修改簡單密碼:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
Query OK, 0 rows affected, 1 warning (0.00 sec)
           

4.5 開啟遠端連接配接,允許遠端連接配接資料庫

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ' Admin123& ' WITH GRANT OPTION;

4.6 配置mysql的配置檔案my.cnf(用預設的也行)

打開配置檔案my.cnf

[[email protected] src]# vi /etc/my.cnf

在[mysqld]下面配置幾行

lower_case_table_names=1       #配置表名不區分大小寫 1:不區分大小寫 0:區分大小寫 這行必須配置 預設表名是區分大小寫的,不利于開發

character-set-server=utf8          #設定為預設編碼為utf8

init_connect='SET NAMES utf8'

max_connections=1024             #設定最大連接配接數

重新開機mysql 重新開機配置才能生效

[[email protected] src]# service mysqld restart

4.7 防火牆開啟端口

到這其實mysql已經安裝和配置好,但是centos7的開了防火牆,外面還是通路不到mysql的,是以還要開端口3306(或者把防火牆關掉也行,生産環境勿用)

關閉防火牆

[[email protected] src]#  systemctl stop firewalld

至此,centos7下安裝mysql5.7.29完畢.

二、更改mysql資料存儲目錄

這裡更改mysql的目錄為/data

mkdir /data

chmod -R 777 /data

systemctl stop mysqld

cp -a /var/lib/mysql/* /data/

chown -R mysql:mysql /data/mysql

修改配置檔案

vi /etc/my.cnf

datadir=/home/data/mysql

重新開機mysql

systemctl restart mysqld

檢視mysql的存儲目錄,需要進入MySQL裡面

mysql> show variables like '%datadir%';

+---------------+--------+

| Variable_name | Value  |

+---------------+--------+

| datadir      | /data/ |

+---------------+--------+

1 row in set (0.00 sec)

作者:Jenwey

連結:https://www.jianshu.com/p/b206e12d74c7

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。