一、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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。