1. initial mysql like below, With the --initialize-insecure option, no root password is generated.

[LAB] root@jptkytcdh01vl /etc/init.d # /usr/sbin/mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

2018-08-03T01:26:56.052349Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2018-08-03T01:26:56.054339Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.

2018-08-03T01:26:56.054378Z 0 [ERROR] Aborting

2. got error as above, need to move existing datadir first.

mv /var/lib/mysql /var/lib/mysql_20180803

[LAB] root@jptkytcdh01vl /etc/init.d # /usr/sbin/mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

[LAB] root@jptkytcdh01vl /etc/init.d # service mysqld start

Starting mysqld: [ OK ]

3. then login and reset the password.

[LAB] root@jptkytcdh01vl /etc/init.d # mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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>

mysql> alter user 'root'@'localhost' identified by 'root';

Query OK, 0 rows affected (0.00 sec)

Doc.

https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html