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/my ...
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服務