第一部分:CentOS 7安裝MySQL 5.7
1.下載YUM庫
shell > wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安裝YUM庫
shell > yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
3.安裝數據庫
shell > yum install -y mysql-community-server
4.啓動MySQL服務
shell >systemctl start mysqld.service
5.
shell > mysql -uroot -p
tip :mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。通過下面的方式找到root默認密碼,然後登錄mysql進行修改:
shell> grep 'temporary password' /var/log/mysqld.log
6.重置root密碼後重啓mysql服務
shell >update mysql.user set authentication_string=password("yourpassword")where user="root" and Host="localhost";
shell > flush privileges;
shell > quit;
shell >systemctl restart mysqld;
如果手賤或者不知道啥原因出現如下問題:
ERROR 1045(28000): Access denied for user 'root'@'localhost' (using password: NO)
請修改my.cnf,添加skip-grant-tables和skip-networking:
shell > vi /etc/my.cnf
[mysqld]
skip-grant-tables
skip-networking
重啓mysql,然後重複以上修改密碼步驟即可,記得修改完後,去掉my.cnf添加的兩行。
第二部分:配置
1、添加遠程登錄用戶(登入Mysql)
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密碼' WITH GRANT OPTION;
注:'%'代表任意地址,也可以指定IP
2、檢查用戶表,刷新內存權限
select host,user from user;
FLUSH PRIVILEGES;
通過msyql環境變量可以查看密碼策略的相關信息:
mysql> 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
6、添加遠程登錄用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,爲了安全起見,我添加一個新的帳戶:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
7、配置默認編碼爲utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重新啓動mysql服務,查看數據庫默認編碼如下所示:
默認配置文件路徑: 配置文件:/etc/my.cnf 日誌文件:/var/log//var/log/mysqld.log 服務啓動腳本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid
3、設置防火牆(CentOS7不推薦)
vi /etc/sysconfig/iptables
在-A RH-Firewall-1-INPUT -j REJECT –reject-withicmp-host-prohibited之前,添加
-A INPUT -m state--state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重啓防火牆
service iptablesrestart
注:centos7使用的是firewall防火牆
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
4、設置字符編碼集和區分大小寫
4.1修改mysql配置文件(設置字符編碼集)
默認位置:/etc/my.cnf
進入etc文件夾>>vimmy.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
* systemctl restart mysql.service #重啓MySQL
* 查看當前mysql運行狀態
mysql>status
參數說明:
haracter_set_client:客戶端請求數據的字符集。
character_set_connection:從客戶端接收到數據,然後傳輸的字符集。
character_set_database:默認數據庫的字符集,無論默認數據庫如何改變,都是這個字符集;如果沒有默認數據庫,使character_set_server指定的字符集,此參數無需設置。
character_set_filesystem:把操作系統上文件名轉化成此字符集,即把character_set_client轉換character_set_filesystem,默認binary即可。
character_set_results:結果集的字符集。
character_set_server:數據庫服務器的默認字符集。
character_set_system:這個值總是utf8,不需要設置,存儲系統元數據的字符集。
4.2修改mysql配置文件(設置區分大小寫)
lower_case_table_names參數詳解:
0:區分大小寫
1:不區分大小寫