配置 yum 源
在https://dev.mysql.com/downloads/repo/yum/找到 yum 源 rpm 安裝包
安裝MySQL源
# 下載
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安裝 mysql 源
yum localinstall mysql57-community-release-el7-11.noarch.rpm
檢查 mysql 源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
安裝MySQL
yum install -y mysql-community-server
啓動MySQL服務
systemctl start mysqld
查看MySQL狀態
systemctl status mysqld
設置開機啓動
systemctl enable mysqld
# 重載所有修改過的配置文件
systemctl daemon-reload
查看登陸密碼
mysql 安裝完成之後,生成的默認密碼在 /var/log/mysqld.log
文件中,使用 grep 命令找到日誌中的密碼
grep 'temporary password' /var/log/mysqld.log
首次通過初始密碼登錄後,使用以下命令修改密碼
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
也可以使用 update set 語句修改密碼
mysql> use mysql;
mysql> update user set password=PASSWORD('MyNewPass5!') where user='root';
mysql> flush privileges;
MySQL5.6.6版本之後增加了密碼強度驗證插件validate_password,默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 錯誤。使用了該插件會檢查設置的密碼是否符合當前設置的強度規則,若不滿足則拒絕設置。所以需要修改密碼強度的驗證機制:
如果你想設置爲弱密碼,也可以通過幾條命令實現修改
1) 查看mysql全局參數配置
這裏與mysql的validate_password_policy的值有關
查看一下msyql密碼相關的幾個全局參數:
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)
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> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_number_count=0;
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=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
|validate_password_dictionary_file | |
| validate_password_length | 0 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 0 |
| 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('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
配置遠程登陸
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須添加一個允許遠程連接的帳戶。或者修改 root 爲允許遠程連接,不推薦
添加一個允許遠程連接的帳戶
mysql> GRANT ALL PRIVILEGES ON *.* TO '賬號'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
修改 root 爲允許遠程連接(不推薦)
mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';
mysql> flush privileges;
設置默認編碼爲 utf8
mysql 安裝後默認不支持中文,需要修改編碼。
修改 /etc/my.cnf
配置文件,在相關節點(沒有則自行添加)下添加編碼配置,如下:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
重啓mysql服務,查詢編碼。可以看到已經改過來了
systemctl restart mysqld
mysql -uroot -p
mysql> show variables like 'character%';