linux實戰–(8)–CentOS7安裝Mysql8

1、環境

mysql官網:https://dev.mysql.com/downloads/repo/yum/

cat /etc/redhat-release
# CentOS Linux release 7.5.1804 (Core)

2、安裝

本方法採用yum安裝方式

mkdir -p /opt/install/mysql
cd /opt/install/mysql/
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# 安裝repo
yum localinstall mysql80-community-release-el7-1.noarch.rpm
# 檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
# 會展示出默認安裝的版本,若需要修改,執行
# vim /etc/yum.repos.d/mysql-community.repo

# 安裝mysql
yum install -y mysql-community-server
# 啓動mysql
systemctl start mysqld
systemctl status mysqld
# 設置mysql開機啓動
systemctl enable mysqld
systemctl daemon-reload

# mysql8安裝成功後有默認密碼,修改root本地登錄密碼
grep 'temporary password' /var/log/mysqld.log
mysql –uroot –p
alter user 'root'@'localhost' identified by 'Mysql@123456'
flush privileges
# 若輸入密碼不正確,那就見鬼了,肯定是你複製錯了。終極方案如下
# vim /etc/my.cnf
# 在 mysqld 下添加:skip-grant-tables 並重啓mysql
# 使用 mysql –uroot –p 可無密碼登陸

3、配置

3.1 字符集配置(8可不配置)

修改默認編碼爲utf8,其中utf8mb4支持表情

mysql –uroot –p
# 可看到大致如下
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8                           |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
# 若有非utf8 則執行
vim /etc/my.cnf
[mysqld]
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'

3.2 表名大小寫敏感配置(8可不配置)

linux下mysql默認是要區分表名大小寫的。mysql是否區分大小寫設置是由參數lower_case_table_names決定。但是mysql8若數據庫已經初始化則,需要刪除數據庫數據重新配置。

mysql –uroot –p
show variables like "%case%"
# 查詢結果
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| lower_case_file_system             | OFF   |
| lower_case_table_names             | 0     |
| validate_password.mixed_case_count | 1     |
+------------------------------------+-------+
其中:
lower_case_file_system 說明是否數據目錄所在的文件系統對文件名的大小寫敏感,ON-不敏感 OFF-敏感
lower_case_table_names 0-區分大小寫(表名敏感) 1-不區分大小寫(表名不敏感)
解決方案:
參考:http://www.cnblogs.com/czwbig/p/9961069.html
參考:https://www.cnblogs.com/kevingrace/p/6150748.html
vim /etc/my.cnf
添加:
#表名大小寫不敏感
lower_case_table_names=1
# 刪除數據庫
systemctl stop mysqld
rm -rf /var/lib/mysql
重啓數據庫。
具體配置參考 其它配置-高可用配置參數

3.3 其他配置

其他默認配置文件路徑:
配置文件:/etc/my.cnf
日誌文件:/var/log/mysqld.log
服務啓動腳本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

高可用配置參數

[mysqld]
character_set_server = utf8mb4
collation_server=utf8_unicode_ci
init_connect='SET NAMES utf8mb4'

#表名大小寫不敏感
lower_case_table_names=1
#允許創建存儲過程
log_bin_trust_function_creators=1
# skip root 
#skip-grant-tables

4、添加遠程登錄用戶,並添加端口

默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,爲了安全起見,我添加一個新的帳戶:

mysql –uroot –p
use mysql
select user,host,authentication_string from user
# 創建用戶
CREATE USER 'adeng'@'%' IDENTIFIED BY 'Mysql@123456'
# 授權訪問
GRANT ALL PRIVILEGES ON *.* TO 'adeng'@'%' WITH GRANT OPTION
select user,host,authentication_string from user
flush privileges

# centos 防火牆默認沒有開啓3306端口,下面添加3306端口
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
# 到此我們就可以使用遠程訪問了

5、其它說明:

mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤,如下圖所示:
在這裏插入圖片描述
通過msyql環境變量可以查看密碼策略的相關信息:

show variables like ‘%password%’

在這裏插入圖片描述
validate_password_policy:密碼策略,默認爲MEDIUM策略
validate_password_dictionary_file:密碼策略文件,策略爲STRONG才需要
validate_password_length:密碼最少長度
validate_password_mixed_case_count:大小寫字符長度,至少1個
validate_password_number_count :數字至少1個
validate_password_special_char_count:特殊字符至少1個
上述參數是默認策略MEDIUM的密碼檢查規則。
共有以下幾種密碼策略:

策略 檢查規則
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
MySQL官網密碼策略詳細說明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
修改密碼策略
在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略
選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典文件
validate_password_policy=0
如果不需要密碼策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
重新啓動mysql服務使配置生效:
systemctl restart mysqld

佔用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章