MySQL5.7 installation and configuration under CentOS7 64-bit (YUM)

Original: https://www.linuxidc.com/Linux/2016-09/135288.htm

 

Installation environment: CentOS 7 64-bit MINI version, install MySQL5.7

1. Configure the YUM source

Download the YUM source rpm installation package on the MySQL official website: http://dev.mysql.com/downloads/repo/yum/ 
MySQL YUM source download address

# 下载mysql源安装包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # 安装mysql源 shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

Check if the mysql source is installed successfully

shell> yum repolist enabled | grep "mysql.*-community.*"

Check if mysql source installation is correct 
If you see the picture above, the installation is successful. 
The source can be modified vim /etc/yum.repos.d/mysql-community.repoto change the mysql version installed by default. For example, to install version 5.6, change the enabled=1 of the 5.7 source to enabled=0. Then change the enabled=0 of the 5.6 source to enabled=1. The effect after the modification is as follows: 
write picture description here

2. Install MySQL

shell> yum install mysql-community-server

3. Start the MySQL service

shell> systemctl start mysqld

Check the startup status of MySQL

shell> systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2016-06-24 04:37:37 CST; 35min ago Main PID: 2888 (mysqld) CGroup: /system.slice/mysqld.service └─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 6月 24 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server... 6月 24 04:37:37 localhost.localdomain systemd[1]: Started MySQL Server.

4. Start up

shell> systemctl enable mysqld
shell> systemctl daemon-reload

5. Modify the root local login password

After the mysql installation is complete, a default password is generated for root in the /var/log/mysqld.log file. Find the root default password in the following way, and then log in to mysql to modify it:

shell> grep 'temporary password' /var/log/mysqld.log

root default password

shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 

or

mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); 

Note: The password security check plugin (validate_password) is installed by default in mysql5.7. The default password check policy requires that the password must contain: uppercase and lowercase letters, numbers and special symbols, and the length cannot be less than 8 characters. Otherwise, it will prompt ERROR 1819 (HY000): Your password does not satisfy the current policy requirements error, as shown in the following figure: 
Password Policy Tips

You can view information about password policies through the msyql environment variable:

mysql> show variables like '%password%';

mysql password policy 
validate_password_policy: password policy, the default is MEDIUM policy 
validate_password_dictionary_file: password policy file, the policy is STRONG only need 
validate_password_length: password minimum length 
validate_password_mixed_case_count: upper and lower case character length, at least 1 
validate_password_number_count: number at least 1 
validate_password_special_char_count: special character at least 1 
above parameters is the password checking rule for the default policy MEDIUM.

There are the following password policies:

Strategy Check the rules
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 official website password policy detailed description: http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

Modify password policy

Add the validate_password_policy configuration to the /etc/my.cnf file to specify the password policy

# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0

If you do not need a password policy, add the following configuration to the my.cnf file to disable it:

validate_password = off

Restart the mysql service for the configuration to take effect:

systemctl restart mysqld

6. Add remote login user

By default, only the root account is allowed to log in locally. If you want to connect to mysql on other machines, you must modify root to allow remote connections, or add an account that allows remote connections. For security, I add a new account:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;

7. Configure the default encoding as utf8

Modify the /etc/my.cnf configuration file and add the encoding configuration under [mysqld], as follows:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

Restart the mysql service and view the default encoding of the database as follows:

mysql default encoding


Default configuration file path: 
Configuration file: /etc/my.cnf 
Log file: /var/log//var/log/mysqld.log 
Service startup script: /usr/lib/systemd/system/mysqld.service 
socket file:/ var/run/mysqld/mysqld.pid

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324483657&siteId=291194637