備注:
- 本文使用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
其它說明:
- 第一次啟動后均践,會生成一個隨機root密碼壶硅,默認在/var/log/mysqld.log這個日志里内列。執(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版本之后增加了密碼強度驗證插件validate_password,相關參數(shù)設置的較為嚴格。
- image.png
設置了好幾次才成功,要求真的很嚴格拆祈,現(xiàn)在我們來關閉它。(必須先修改默認密碼倘感,才能進行其他操作)
查看規(guī)則:SHOW VARIABLES LIKE 'validate_password%';
- image.png
-
說明:
validate_password_dictionary_file # 插件用于驗證密碼強度的字典文件路徑放坏。
-
validate_password_length # 密碼最小長度,參數(shù)默認為8老玛,它有最小值的限制
- 最小值為:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count # 密碼至少要包含的小寫字母個數(shù)和大寫字母個數(shù)淤年。
validate_password_number_count # 密碼至少要包含的數(shù)字個數(shù)钧敞。
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炊昆,所以剛開始設置的密碼必須符合長度,且必須含有數(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';
開通遠程權限:GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;flush privileges;
-
設置數(shù)據庫默認編碼: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服務:
- service mysqld stop
- service mysqld start
- 查看編碼指令(需先進入數(shù)據庫):show variables like 'character%';
- image.png
MySQL5.7導入數(shù)據報錯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