下载安装包mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar。
解压安装包
tar -xf mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar
[root@mysql1 mysql8]# ll
total 1719448
-rwxr-xr-x 1 root root 880353280 Dec 23 14:06 mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 7155 31415 49820920 Sep 25 16:58 mysql-community-client-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 240972 Sep 25 16:59 mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 630772 Sep 25 16:59 mysql-community-common-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 8468592 Sep 25 16:59 mysql-community-devel-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23597312 Sep 25 16:59 mysql-community-embedded-compat-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4809544 Sep 25 16:59 mysql-community-libs-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1273480 Sep 25 16:59 mysql-community-libs-compat-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 534432648 Sep 25 17:01 mysql-community-server-8.0.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 257069560 Sep 25 17:03 mysql-community-test-8.0.22-1.el7.x86_64.rpm
mysql8.0文档中的安装说明
In most cases, you need to install the mysql-community-server, mysql-community-client,
mysql-community-libs, mysql-community-common, and mysql-community-libs-compat
packages to get a functional, standard MySQL installation. To perform such a standard, basic
installation, go to the folder that contains all those packages (and, preferably, no other RPM packages
with similar names), and issue the following command:
shell>sudo yum install mysql-community-{server,client,common,libs}-*
执行安装 命令
[root@mysql1 mysql8]# yum install mysql-community-{server,client,common,libs}-*
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Examining mysql-community-server-8.0.22-1.el7.x86_64.rpm: mysql-community-server-8.0.22-1.el7.x86_64
Marking mysql-community-server-8.0.22-1.el7.x86_64.rpm to be installed
Examining mysql-community-client-8.0.22-1.el7.x86_64.rpm: mysql-community-client-8.0.22-1.el7.x86_64
Marking mysql-community-client-8.0.22-1.el7.x86_64.rpm to be installed
Examining mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm: mysql-community-client-plugins-8.0.22-1.el7.x86_64
Marking mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm to be installed
Examining mysql-community-common-8.0.22-1.el7.x86_64.rpm: mysql-community-common-8.0.22-1.el7.x86_64
Marking mysql-community-common-8.0.22-1.el7.x86_64.rpm to be installed
Examining mysql-community-libs-8.0.22-1.el7.x86_64.rpm: mysql-community-libs-8.0.22-1.el7.x86_64
Marking mysql-community-libs-8.0.22-1.el7.x86_64.rpm to be installed
Examining mysql-community-libs-compat-8.0.22-1.el7.x86_64.rpm: mysql-community-libs-compat-8.0.22-1.el7.x86_64
Marking mysql-community-libs-compat-8.0.22-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.65-1.el7 will be obsoleted
---> Package mysql-community-client.x86_64 0:8.0.22-1.el7 will be installed
---> Package mysql-community-client-plugins.x86_64 0:8.0.22-1.el7 will be installed
---> Package mysql-community-common.x86_64 0:8.0.22-1.el7 will be installed
---> Package mysql-community-libs.x86_64 0:8.0.22-1.el7 will be obsoleting
---> Package mysql-community-libs-compat.x86_64 0:8.0.22-1.el7 will be obsoleting
---> Package mysql-community-server.x86_64 0:8.0.22-1.el7 will be installed
--> Finished Dependency Resolution
base | 3.6 kB 00:00:00
base/primary_db | 6.1 MB 00:00:00
epel | 4.7 kB 00:00:00
epel/updateinfo | 1.0 MB 00:00:00
epel/primary_db | 6.9 MB 00:00:00
mirrors.163.com.repo | 3.6 kB 00:00:00
mirrors.163.com.repo/primary_db | 6.1 MB 00:00:00
zabbix | 2.9 kB 00:00:00
Dependencies Resolved
====================================================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================================================
Installing:
mysql-community-client x86_64 8.0.22-1.el7 /mysql-community-client-8.0.22-1.el7.x86_64 230 M
mysql-community-client-plugins x86_64 8.0.22-1.el7 /mysql-community-client-plugins-8.0.22-1.el7.x86_64 1.0 M
mysql-community-common x86_64 8.0.22-1.el7 /mysql-community-common-8.0.22-1.el7.x86_64 8.9 M
mysql-community-libs x86_64 8.0.22-1.el7 /mysql-community-libs-8.0.22-1.el7.x86_64 22 M
replacing mariadb-libs.x86_64 1:5.5.65-1.el7
mysql-community-libs-compat x86_64 8.0.22-1.el7 /mysql-community-libs-compat-8.0.22-1.el7.x86_64 6.1 M
replacing mariadb-libs.x86_64 1:5.5.65-1.el7
mysql-community-server x86_64 8.0.22-1.el7 /mysql-community-server-8.0.22-1.el7.x86_64 2.3 G
Transaction Summary
====================================================================================================================================================================
Install 6 Packages
Total size: 2.6 G
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-common-8.0.22-1.el7.x86_64 1/7
Installing : mysql-community-client-plugins-8.0.22-1.el7.x86_64 2/7
Installing : mysql-community-libs-8.0.22-1.el7.x86_64 3/7
Installing : mysql-community-client-8.0.22-1.el7.x86_64 4/7
Installing : mysql-community-server-8.0.22-1.el7.x86_64 5/7
Installing : mysql-community-libs-compat-8.0.22-1.el7.x86_64 6/7
Erasing : 1:mariadb-libs-5.5.65-1.el7.x86_64 7/7
warning: file /usr/share/mysql/ukrainian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/ukrainian: remove failed: No such file or directory
warning: file /usr/share/mysql/swedish/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/swedish: remove failed: No such file or directory
warning: file /usr/share/mysql/spanish/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/spanish: remove failed: No such file or directory
warning: file /usr/share/mysql/slovak/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/slovak: remove failed: No such file or directory
warning: file /usr/share/mysql/serbian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/serbian: remove failed: No such file or directory
warning: file /usr/share/mysql/russian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/russian: remove failed: No such file or directory
warning: file /usr/share/mysql/romanian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/romanian: remove failed: No such file or directory
warning: file /usr/share/mysql/portuguese/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/portuguese: remove failed: No such file or directory
warning: file /usr/share/mysql/polish/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/polish: remove failed: No such file or directory
warning: file /usr/share/mysql/norwegian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/norwegian-ny/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/norwegian-ny: remove failed: No such file or directory
warning: file /usr/share/mysql/norwegian: remove failed: No such file or directory
warning: file /usr/share/mysql/korean/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/korean: remove failed: No such file or directory
warning: file /usr/share/mysql/japanese/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/japanese: remove failed: No such file or directory
warning: file /usr/share/mysql/italian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/italian: remove failed: No such file or directory
warning: file /usr/share/mysql/hungarian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/hungarian: remove failed: No such file or directory
warning: file /usr/share/mysql/greek/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/greek: remove failed: No such file or directory
warning: file /usr/share/mysql/german/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/german: remove failed: No such file or directory
warning: file /usr/share/mysql/french/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/french: remove failed: No such file or directory
warning: file /usr/share/mysql/estonian/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/estonian: remove failed: No such file or directory
warning: file /usr/share/mysql/english/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/english: remove failed: No such file or directory
warning: file /usr/share/mysql/dutch/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/dutch: remove failed: No such file or directory
warning: file /usr/share/mysql/danish/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/danish: remove failed: No such file or directory
warning: file /usr/share/mysql/czech/errmsg.sys: remove failed: No such file or directory
warning: file /usr/share/mysql/czech: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/swe7.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/macroman.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/macce.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/latin7.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/latin5.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/latin2.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/latin1.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/koi8u.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/koi8r.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/keybcs2.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/hp8.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/hebrew.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/greek.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/geostd8.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/dec8.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp866.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp852.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp850.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp1257.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp1256.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp1251.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/cp1250.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/ascii.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/armscii8.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/README: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets/Index.xml: remove failed: No such file or directory
warning: file /usr/share/mysql/charsets: remove failed: No such file or directory
warning: file /usr/share/mysql: remove failed: No such file or directory
warning: file /usr/lib64/mysql/plugin/mysql_clear_password.so: remove failed: No such file or directory
warning: file /usr/lib64/mysql/plugin/dialog.so: remove failed: No such file or directory
warning: file /usr/lib64/mysql/libmysqlclient.so.18.0.0: remove failed: No such file or directory
Verifying : mysql-community-libs-8.0.22-1.el7.x86_64 1/7
Verifying : mysql-community-server-8.0.22-1.el7.x86_64 2/7
Verifying : mysql-community-client-plugins-8.0.22-1.el7.x86_64 3/7
Verifying : mysql-community-common-8.0.22-1.el7.x86_64 4/7
Verifying : mysql-community-client-8.0.22-1.el7.x86_64 5/7
Verifying : mysql-community-libs-compat-8.0.22-1.el7.x86_64 6/7
Verifying : 1:mariadb-libs-5.5.65-1.el7.x86_64 7/7
Installed:
mysql-community-client.x86_64 0:8.0.22-1.el7 mysql-community-client-plugins.x86_64 0:8.0.22-1.el7 mysql-community-common.x86_64 0:8.0.22-1.el7
mysql-community-libs.x86_64 0:8.0.22-1.el7 mysql-community-libs-compat.x86_64 0:8.0.22-1.el7 mysql-community-server.x86_64 0:8.0.22-1.el7
Replaced:
mariadb-libs.x86_64 1:5.5.65-1.el7
Complete!
[root@mysql1 mysql8]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@mysqlstu1 ~]# tail -111f /var/log/mysqld.log
2020-12-23T07:13:38.250014Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.22) initializing of server in progress as process 1817
2020-12-23T07:13:38.250064Z 0 [ERROR] [MY-010338] [Server] Can‘t find error-message file ‘/usr/local/mysql/share/mysql-8.0/errmsg.sys‘. Check error-message file location and ‘lc-messages-dir‘ configuration directive.
rpm安装不能在my.cnf文件中指定basedir,以下是更改后的my.cnf。
[mysql]
port = 3306
socket = /tmp/mysql.sock
#default-character-set = utf8
prompt = [\\u@\\d]\\R:\\m:\\s>
[client]
#default-character-set = utf8
socket = /tmp/mysql.sock
[mysqld]
default-authentication-plugin=mysql_native_password
user=mysql
#basedir=/usr/local/mysql
datadir=/opt/mydata/data
log-error=/var/log/mysqld.log
socket=/tmp/mysql.sock
#character-set-server= utf8
slow_query_log_file = /opt/mydata/logs/slow.log
log_bin=/opt/mydata/logs/mysql_log_bin
server_id=97
slow_query_log=1
long_query_time=5
log_queries_not_using_indexes=1
innodb_undo_directory=/opt/mydata/undo
innodb_log_files_in_group=3
log_timestamps=SYSTEM
pid-file=/var/run/mysqld/mysqld.pid
#gtid_mode=on
#enforce_gtid_consistency=on
#rpl_semi_sync_master_enabled=on
#rpl_semi_sync_master_wait_for_slave_count=1
#master_info_repository = TABLE
#relay_log_info_repository = TABLE
#binlog_checksum = NONE
再次启动成功
[root@mysql1 mysql8]# systemctl start mysqld
[root@mysql1 mysql8]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-12-23 15:45:23 CST; 27min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 2535 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 2607 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─2607 /usr/sbin/mysqld
Dec 23 15:45:17 mysqlstu1 systemd[1]: Starting MySQL Server...
Dec 23 15:45:23 mysqlstu1 systemd[1]: Started MySQL Server.
找到root初始密码
[root@mysql1 mydata]# grep ‘temporary password‘ /var/log/mysqld.log
2020-12-23T07:45:19.940049Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2,h942i#gtuR
[root@mysql1 mysql8]# mysql -uroot -A -p2,h942i#gtuR
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22
Copyright (c) 2000, 2020, 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.
[root@(none)]16:13:25>\g
ERROR:
No query specified
[root@(none)]16:13:41>\c
[root@(none)]16:13:58>show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
登录后首先要不更新密码
[root@(none)]16:16:32>ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘Abcd!@34‘;
Query OK, 0 rows affected (0.00 sec)
密码策略改简单点
[root@sys]16:19:56>SHOW VARIABLES LIKE ‘validate_password%‘;
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| 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 |
+--------------------------------------+--------+
[root@sys]16:26:24>set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
[root@sys]16:26:56>SHOW VARIABLES LIKE ‘validate_password%‘;
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| 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)
更改root用户远程登录
[root@sys]16:32:47>update mysql.user set host = ‘%‘ where user = ‘root‘;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
[root@sys]16:33:26>select User,authentication_string,Host from mysql.user;
+------------------+------------------------------------------------------------------------+-----------+
| User | authentication_string | Host |
+------------------+------------------------------------------------------------------------+-----------+
| root | *281E87151EDAF9135605BA99E36B54FBB222A2C7 | % |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
+------------------+------------------------------------------------------------------------+-----------+
4 rows in set (0.00 sec)
[root@sys]16:33:29>set global validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)
[root@sys]16:36:39>flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@sys]16:37:05>ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘abcd‘ ;
Query OK, 0 rows affected (0.00 sec)
这样就可以远程连接到mysql数据库了。
小结一下:
1、rpm安装时不要指定basedir;
2、初始化mysql时如果出现错误,再次执行前要删除datadir中的所有文件;
3、查看mysql错误日志时发现时间与系统时间不一致,相差8个小时,mysql有一个全局变量log_timestamps默认为UTC,
可以通过set global log_timestamps=SYSTEM;临时设置为与系统一致,当系统重启后,配置就失效,需要添加到my.cnf中。