1.刪除舊版本的MySQL
rpm -qa|grep -i mysql
用命令yum -y remove mysql
2.下載新版安裝源
下載mysql的repo源 這個安裝的mysql5.7.20
# cd /usr/local/src/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
# yum -y install mysql-server
yum –installroot=/usr/local/mysql –releasever=/ -y install mysql-server
3.安裝後的配置
預設配置檔案路徑:
配置檔案:/etc/my.cnf
日誌檔案:/var/log/var/log/mysqld.log
服務啟動指令碼:/usr/lib/systemd/system/mysqld.service
socket檔案:/var/run/mysqld/mysqld.pid
配置 my.cnf vim /etc/my.cnf
[mysql]
default-character-set=utf8 #支援中文字元
[mysqld]
#skip-grant-tables #跳過授權表
server-id = 1
port = 3306 #埠
slow_query_log = 1 #慢查詢開啟
slow_query_log_file = slow.log #慢查詢日誌路徑
long_query_time = 8 #慢查詢日誌最長時間
expire_logs_days = 5 #日誌過期時間
log-bin=mysql-bin #二進位制日誌字首
4. 啟動mysql服務
service mysqld restart
mysql -uroot -p
登入不進去,在/etc/my.cnf檔案中 skip-grant-tables
mysql -uroot
mysql> update mysql.user set authentication_string=password(`123456`) where user=`root` ;
flush privileges;
顯示密碼Your password does not satisfy the current policy requirements
這個其實與validate_password_policy的值有關。
validate_password_policy有以下取值:
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,所以剛開始設定的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。
有時候,只是為了自己測試,不想密碼設定得那麼複雜,譬如說,我只想設定root的密碼為123456。
必須修改兩個全域性引數:
設定安全級別能解決這個問題
set global validate_password_policy=0;
select @@validate_password_length;
validate_password_length引數預設為8,它有最小值的限制,最小值為:
validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)
其中,validate_password_number_count指定了密碼中資料的長度,validate_password_special_char_count指定了密碼中特殊字元的長度,validate_password_mixed_case_count指定了密碼中大小字母的長度。
這些引數,預設值均為1,所以validate_password_length最小值為4,如果你顯性指定validate_password_length的值小於4,儘管不會報錯,但validate_password_length的值將設為4。如下所示:
當然,前提是validate_password外掛必須已經安裝,MySQL5.7是預設安裝的。
那麼如何驗證validate_password外掛是否安裝呢?可通過檢視以下引數,如果沒有安裝,則輸出將為空。
SHOW VARIABLES LIKE `validate_password%`;
沒有裝則顯示為空
set global validate_password_length=4;
問題解決。
log-error=/var/log/mysqld.log #錯誤日誌路徑
pid-file=/var/run/mysqld/mysqld.pid #pid檔案路徑
datadir=/var/lib/mysql #資料目錄
socket=/var/lib/mysql/mysql.sock #sock檔案存放路徑
4. 啟動mysql服務
service mysqld restart