備注:
- 本文使用mysql5.7社區(qū)版
- 本文使用yum安裝,省去手工編譯
- centos版本 7.x(http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm)
sudo rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
sudo yum install mysql-community-server
service mysqld start
其它說(shuō)明:
- 第一次啟動(dòng)后,會(huì)生成一個(gè)隨機(jī)root密碼,默認(rèn)在/var/log/mysqld.log這個(gè)日志里。執(zhí)行指令sudo grep 'temporary password' /var/log/mysqld.log 獲取密碼
- 修改密碼為:123456
登錄:mysql -u root -p
密碼:eglpQwAH2o?E(我的初始密碼)
修改密碼:ALTER USER USER() IDENTIFIED BY '123456';
由于MySQL5.6.6版本之后增加了密碼強(qiáng)度驗(yàn)證插件validate_password,相關(guān)參數(shù)設(shè)置的較為嚴(yán)格。
- image.png
設(shè)置了好幾次才成功,要求真的很嚴(yán)格,現(xiàn)在我們來(lái)關(guān)閉它。(必須先修改默認(rèn)密碼,才能進(jìn)行其他操作)
查看規(guī)則:SHOW VARIABLES LIKE 'validate_password%';
- image.png
-
說(shuō)明:
validate_password_dictionary_file # 插件用于驗(yàn)證密碼強(qiáng)度的字典文件路徑。
-
validate_password_length # 密碼最小長(zhǎng)度,參數(shù)默認(rèn)為8,它有最小值的限制
- 最小值為:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count # 密碼至少要包含的小寫字母?jìng)€(gè)數(shù)和大寫字母?jìng)€(gè)數(shù)。
validate_password_number_count # 密碼至少要包含的數(shù)字個(gè)數(shù)。
validate_password_policy # 密碼強(qiáng)度檢查等級(jí),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 默認(rèn)是1,即MEDIUM,所以剛開(kāi)始設(shè)置的密碼必須符合長(zhǎng)度,且必須含有數(shù)字,小寫或大寫字母,特殊字符。validate_password_special_char_count # 密碼至少要包含的特殊字符數(shù)。
-
修改規(guī)則:
set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_special_char_count=0; set global validate_password_number_count=6; set global validate_password_length=6; SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 6 | | validate_password_mixed_case_count | 0 | | validate_password_number_count | 6 | | validate_password_policy | LOW | | validate_password_special_char_count | 0 | +--------------------------------------+-------+ 7 rows in set (0.00 sec)
再次修改密碼:ALTER USER USER() IDENTIFIED BY '123456';
開(kāi)通遠(yuǎn)程權(quán)限:GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;flush privileges;
-
設(shè)置數(shù)據(jù)庫(kù)默認(rèn)編碼:utf8
- 指令:sudo vim /etc/my.cnf
- 在my.cnf 配制文件下新增下列二行
character_set_server=utf8 init_connect='SET NAMES utf8' wait_timeout = 600 # Too many connections的解決方法 interactive_timeout = 600- image.png
- 重啟mysql服務(wù):
- service mysqld stop
- service mysqld start
- 查看編碼指令(需先進(jìn)入數(shù)據(jù)庫(kù)):show variables like 'character%';
- image.png
MySQL5.7導(dǎo)入數(shù)據(jù)報(bào)錯(cuò)ERROR 1067 (42000) at line 1015: Invalid default value for 'service_time'
解決辦法:
修改my.cnf,
[mysqld] 下面添加
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp=1



