1.加入mysql8官方源
yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
yumclean allyum makecache
2.安装
yum install mysql-community-server
3.启动
systemctl start mysqld.service
4.获取密码登录
[root@localhost mysql]# grep "A temporary password" /var/log/mysqld.log2020-04-17T16:08:17.317445Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost:cRh/8dVezqBy
5.登录,首次登录需要强制修改密码
[root@localhost mysql]# mysql -uroot -pcRh/8dVezqBy
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 connectionid is 10Server version:8.0.19Copyright (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 clearthe current input statement.
mysql>use mysql;
ERROR1820(HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY 'root';
Query OK,0 rows affected (0.01sec)
mysql>
6.添加远程登录用户
mysql>use mysql;
Reading table informationforcompletion of table and column names
You can turn off this feature to get a quicker startup with-A
Database changed
mysql> selecthost,user,authentication_string,plugin from user;+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | $A$005$g!1g[XW+A^#{<
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00sec)
添加用户
mysql> create user sxmd@'%' identified by 'Sxmd.2020';
Query OK,0 rows affected (0.01sec)
授权
mysql> grant all privileges on *.* to sxmd@'%'with grant option;
Query OK,0 rows affected (0.00sec)
刷新
mysql>flush privileges;
Query OK,0 rows affected (0.00 sec)
因为mysql8使用的是caching_sha2_password加密规则,正常的远程连接会出错:Unable to load authentication plugin 'caching_sha2_password'.最简单的方法是修改远程连接用户的加密规则:
mysql> ALTER USER 'sxmd'@'%' IDENTIFIED WITH mysql_native_password BY 'Sxmd.2020';
Query OK, 0 rows affected (0.01 sec)
7.补充问题
7.1假如获取密码登录失败,目录中/var/log/mysqld.log文件丢失怎么办?可以删除/var/lib/mysql目录 重新初始化
[root@localhost mysql]# rm -rf /var/lib/mysql
[root@localhost mysql]# mysqld--initialize --console2020-04-17T04:02:52.195472Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 25506
2020-04-17T04:02:56.304216Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: cRh/8dVezqBy
7.2ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 一般是权限问题,修改目录权限,需要重启服务
[root@localhost mysql]# chown -R mysql:mysql /var/lib/mysql
[root@localhost mysql]# mysql-uroot -p
Enter password:
ERROR2002 (HY000): Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock'(2)
[root@localhost mysql]# systemctl restart mysqld.service