Download yum source
Official website address: http: //dev.mysql.com/downloads/repo/yum/
centos7 system:
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm --2019-08-10 21:38:37-- https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm Resolving dev.mysql.com (dev.mysql.com)... 137.254.60.11 Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [following] --2019-08-10 21:38:59-- https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm Resolving repo.mysql.com (repo.mysql.com)... 104.74.21.42 Connecting to repo.mysql.com (repo.mysql.com)|104.74.21.42|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 25680 (25K) [application/x-redhat-package-manager] Saving to: ‘mysql57-community-release-el7-11.noarch.rpm’ 100%[===================================================================================================================>] 25,680 --.-K/s in 0.1s 2019-08-10 21:39:00 (253 KB/s) - ‘mysql57-community-release-el7-11.noarch.rpm’ saved [25680/25680] [root@localhost ~]# ls anaconda-ks.cfg mysql57-community-release-el7-11.noarch.rpm
Detecting whether the system comes to install mysql
# yum list installed | grep mysql
Delete the system comes with mysql
# yum -y remove mysql-libs.x86_64
The mysql the yum source server in a foreign country, so the download speed will be slower, mysql5.6 only 79M large, and there mysql5.7 182M.
Installation mysql57-community-release-el7-11.noarch.rpm package
# yum -y install mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install mysql57-community-release-el7-11.noarch.rpm Loaded plugins: fastestmirror Examining mysql57-community-release-el7-11.noarch.rpm: mysql57-community-release-el7-11.noarch Marking mysql57-community-release-el7-11.noarch.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package mysql57-community-release.noarch 0:el7-11 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================= Installing: mysql57-community-release noarch el7-11 /mysql57-community-release-el7-11.noarch 31 k Transaction Summary ============================================================================================================================================================= Install 1 Package Total size: 31 k Installed size: 31 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mysql57-community-release-el7-11.noarch 1/1 Verifying : mysql57-community-release-el7-11.noarch 1/1 Installed: mysql57-community-release.noarch 0:el7-11 Complete!
After installing this package, you get yum repo source of two mysql: /etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo
[root@localhost ~]# ls /etc/yum.repos.d/ centos.repo mysql-community.repo mysql-community-source.repo
# cat /etc/yum.repos.d/mysql-community.repo
[root@localhost ~]# cat /etc/yum.repos.d/mysql-community.repo [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community] name=MySQL Tools Community baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.5 [mysql55-community] name=MySQL 5.5 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-preview] name=MySQL Tools Preview baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.5-community] name=MySQL Cluster 7.5 Community baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.6-community] name=MySQL Cluster 7.6 Community baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
# cat /etc/yum.repos.d/mysql-community-source.repo
[root@localhost ~]# cat /etc/yum.repos.d/mysql-community-source.repo [mysql-connectors-community-source] name=MySQL Connectors Community - Source baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community-source] name=MySQL Tools Community - Source baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql55-community-source] name=MySQL 5.5 Community Server - Source baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql56-community-source] name=MySQL 5.6 Community Server - Source baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql57-community-source] name=MySQL 5.7 Community Server - Source baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community-source] name=MySQL 8.0 Community Server - Source baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-preview-source] name=MySQL Tools Preview - Source baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.5-community-source] name=MySQL Cluster 7.5 Community - Source baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.6-community-source] name=MySQL Cluster 7.6 Community - Source baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/SRPMS enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Check with yum repolist mysql command mysql whether there is installable file
# yum repolist all | grep mysql
[root@localhost ~]# yum repolist all | grep mysql mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community disabled mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - disabled mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community disabled mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - disabled mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 118 mysql-connectors-community-source MySQL Connectors Community - disabled mysql-tools-community/x86_64 MySQL Tools Community enabled: 95 mysql-tools-community-source MySQL Tools Community - Sourc disabled mysql-tools-preview/x86_64 MySQL Tools Preview disabled mysql-tools-preview-source MySQL Tools Preview - Source disabled mysql55-community/x86_64 MySQL 5.5 Community Server disabled mysql55-community-source MySQL 5.5 Community Server - disabled mysql56-community/x86_64 MySQL 5.6 Community Server disabled mysql56-community-source MySQL 5.6 Community Server - disabled mysql57-community/x86_64 MySQL 5.7 Community Server enabled: 364 mysql57-community-source MySQL 5.7 Community Server - disabled mysql80-community/x86_64 MySQL 8.0 Community Server disabled mysql80-community-source MySQL 8.0 Community Server - disabled
Install mysql
# yum install mysql-server -y
Relatively slow, be patient
Installed: mysql-community-libs.x86_64 0:5.7.27-1.el7 mysql-community-libs-compat.x86_64 0:5.7.27-1.el7 mysql-community-server.x86_64 0:5.7.27-1.el7 Dependency Installed: mysql-community-client.x86_64 0:5.7.27-1.el7 mysql-community-common.x86_64 0:5.7.27-1.el7 net-tools.x86_64 0:2.0-0.24.20131004git.el7 Dependency Updated: openssl.x86_64 1:1.0.2k-16.el7_6.1 openssl-libs.x86_64 1:1.0.2k-16.el7_6.1 postfix.x86_64 2:2.10.1-7.el7 Replaced: mariadb-libs.x86_64 1:5.5.44-2.el7.centos Complete!
Join boot from the start
# systemctl enable mysqld
Start mysql service process
# systemctl start mysqld
View mysql service process
# systemctl status mysqld
[root@localhost ~]# systemctl start mysqld [root@localhost ~]# [root@localhost ~]# systemctl status mysqld ◠mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-08-10 22:15:24 CST; 7s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 11810 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 11736 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 11813 (mysqld) CGroup: /system.slice/mysqld.service └─11813 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid Aug 10 22:15:17 localhost.localdomain systemd[1]: Starting MySQL Server... Aug 10 22:15:24 localhost.localdomain systemd[1]: Started MySQL Server.
Enter mysql
# mysql
[root@localhost ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
MySQL server initialization (starting from MySQL 5.7): when the server initial startup, if the server's data directory is empty, then the following occurs:
(1), the server is initialized
(2), generate an SSL certificate and key files in the data directory
(3) The validate_password plug-in installed and enabled
(4), will 'root'@'localhost'
create a superuser account. Setting a supervisor password and store it in a log file. To show it, use the following command:
# grep "password" /var/log/mysqld.log
[root@localhost ~]# grep "password" /var/log/mysqld.log 2019-08-10T14:15:20.529782Z 1 [Note] A temporary password is generated for root@localhost: #&kdOvHin6gP 2019-08-10T14:16:10.145451Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
Using the username and password to enter the mysql
[root@localhost ~]# mysql -uroot -p Enter password: #输入初始密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.27 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
After the initial operation of the database in order to enter the password to access the mysql database, it will not do anything, because the default MySQL password must be changed
mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement
Modify the mysql password
Note:
MySQL's validate_password plug-in installed by default. This would require a password containing at least one capital letter, a small letter, a number and a special character, and a total length of a password of at least 8 characters.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = PASSWORD('Admin123!');
mysql> SET PASSWORD = PASSWORD('Admin123!'); Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL complete the initial password rules can be viewed with the following command:
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.01 sec)
The password is determined by validate_password_length, and validate_password_length formula is:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
If you want to set up a simple password to modify two global parameters:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec)
View mysql password rules again
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.00 sec)
At this time, the password can be set very simple, like for example 1234
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec)
You can set up remote login
Authorized remote login
grant all privileges on *.* to root@'%' identified by 'password' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;
The first is your username root, password is the second remote password
mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option
flush command to make the configuration take effect immediately
mysql> flush privileges;
mysql> select user,host from mysql.user; +---------------+-----------+ | user | host | +---------------+-----------+ | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 3 rows in set (0.00 sec) mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> select user,host from mysql.user; +---------------+-----------+ | user | host | +---------------+-----------+ | root | % | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 4 rows in set (0.00 sec)
Or use it to modify the statement authorized remote client login
use mysql;
show tables;
select Host,User from user \G
update user set host = '%' where Host = "localhost" and user = "root";
Modify some simple configuration:
The default character set is Latin character set, each time the database is created to set the character set; default does not support the group by statement, the default time zone is not our current Beijing (East eight districts), will lead us to the time difference 13 points.
Open the configuration file, yum install by default in the / etc folder: /etc/my.cnf
# We /etc/my.cnf
The default configuration is as follows:
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
In [mysqld] Add the following, no semicolon
Character set: utf8, not utf8 Note that!
character-set-server=utf8
View mysql character set
mysql> show variables like 'char%';
The default character set as follows
mysql> show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
Set the time zone to the East eight districts
default-time_zone = '+8:00'
Support group by sql statement
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Reference blog:
CentOS7 yum installed MySQL5.7
centos7.4 installation MySQL5.7
https://blog.csdn.net/pzl_pzl/article/details/82015144
Using yum source mounting mysql5.7 record centos7
https://www.jianshu.com/p/531cc35b15e7