linux系统通过官方源安装mysql8

1.加入mysql8官方源

yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
yum clean all
yum makecache

2.安装

yum install mysql-community-server

3.启动

systemctl start mysqld.service

4.获取密码登录

[root@localhost mysql]# grep "A temporary password" /var/log/mysqld.log
2020-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 connection id is 10
Server version: 8.0.19

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.

mysql> use mysql;
ERROR 1820 (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.01 sec)

mysql> 

6.添加远程登录用户

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,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^#{<<xECB5ys.ANfnfz2rlgkuEGUHf.cS21sYsPO5Glj4FES/ | caching_sha2_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)
添加用户
mysql> create user sxmd@'%' identified  by 'Sxmd.2020';
Query OK, 0 rows affected (0.01 sec)
授权
mysql> grant all privileges on *.* to sxmd@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)
刷新
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 --console
2020-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: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@localhost mysql]# systemctl restart mysqld.service 


原文地址:https://www.cnblogs.com/liuxiutianxia/p/12719662.html