2020年8月

MySQL8.0.21连接报错Plugin caching_sha2_password could not be loaded解决方法

MySQL8默认加密使用的是caching_sha2_password插件,

root@devops_db 17:54:  [mysql]> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | caching_sha2_password |
+-------------------------------+-----------------------+
1 row in set (0.00 sec)

root@devops_db 17:55:  [mysql]>  select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | ice              | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)

使用SQL客户端连接的时候就会报Plugin caching_sha2_password could not be loaded错误,常见有如下解决方法:
1、写入my.cnf文件后重启MySQL:

[mysqld]
default_authentication_plugin=mysql_native_password

2、兼容新老版本的认证方式:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx' PASSWORD EXPIRE NEVER; #修改加密规则 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxx'; #更新用户密码 
FLUSH PRIVILEGES; #刷新权限

3、创建用户时指定加密方式:

CREATE USER 'ice'@'10.10.%' IDENTIFIED WITH mysql_native_password BY 'password'; #加密方式为
GRANT ALL privileges on TESTDB.* to 'ice'@'10.10.%' with grant option;
FLUSH PRIVILEGES;

使用mysql_native_password插件加密即可链接,mysql_native_password也是5.7以下版本使用的加密方式。

CentOS7.8编译安装MySQL8.0.21

  Centos7.8安装的是minimal最小化版本,首先安装基础必需的软件包及更新下系统:

yum install gcc gcc-c++ gcc-g77 make autoconf automake ncurses ncurses-devel openssl openssl-devel bison cmake cmake3 -y

MySQL8.0需要用gcc的版本为 4.8以上,CentOS自带的版本比较低,通过yum安装的版本也低,参考下面升级GCC版本

升级GCC版本参考:https://mhl.xyz/Linux/update-gcc.html

MySQL8.0.21.png

添加mysql运行账号及数据保存目录

groupadd mysql
useradd -g mysql mysql -s /bin/false
mkdir -p /data/mysql/
mkdir -p /data/mysql_logs/binlog/
touch /data/mysql_logs/error.log
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /data/mysql_logs/

---阅读剩余部分---

lsof查看文件归属进程占用信息

lsof: list open files
可以列出被进程所打开的文件的信息。被打开的文件可以是
1.普通文件
2.目录
3.网络文件系统的文件
4.字符设备文件
5.(函数)共享库
6.管道,命名管道
7.符号链接
8.底层的socket字流,网络socket,unix域名socket
9.在linux里面,大部分的东西都是被当做文件的…
lsof常用使用说明:

1.列出所有打开的文件:

lsof

备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位

2. 查看谁正在使用某个文件

lsof   /filepath/file

3.递归查看某个目录的文件信息

lsof +D /filepath/filepath2/

备注: 使用了+D,对应目录下的所有子目录和文件都会被列出

4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法

lsof | grep ‘/filepath/filepath2/’

5. 列出某个用户打开的文件信息

lsof  -u username

备注: -u 选项,u其实是user的缩写

6. 列出某个程序所打开的文件信息

lsof -c mysql

备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了

7. 列出多个程序多打开的文件信息

lsof -c mysql -c apache

8. 列出某个用户以及某个程序所打开的文件信息

lsof -u test -c mysql

9. 列出除了某个用户外的被打开的文件信息

lsof   -u ^root

备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示

10. 通过某个进程号显示该进行打开的文件

lsof -p 1

11. 列出多个进程号对应的文件信息

lsof -p 123,456,789

12. 列出除了某个进程号,其他进程号所打开的文件信息

lsof -p ^1

13 . 列出所有的网络连接

lsof -i

14. 列出所有tcp 网络连接信息

lsof  -i tcp

15. 列出所有udp网络连接信息

lsof  -i udp

16. 列出谁在使用某个端口

lsof -i :3306

17. 列出谁在使用某个特定的udp端口

lsof -i udp:55

特定的tcp端口

lsof -i tcp:80

18. 列出某个用户的所有活跃的网络端口

lsof  -a -u test -i

19. 列出所有网络文件系统

lsof -N

20.域名socket文件

lsof -u

21.某个用户组所打开的文件信息

lsof -g 5555

22. 根据文件描述列出对应的文件信息

lsof -d description(like 2)

23.根据文件描述范围列出文件信息

lsof -d 2-3

24. 列出COMMAND列中包含字符串" sshd",且文件描符的类型为txt的文件信息
lsof -c sshd -a -d txt

25.列出被进程号为1234的进程所打开的所有IPV4 network files
lsof -i 4 -a -p 1234

26. 列出目前连接主机peida.linux上端口为:20,21,22,25,53,80相关的所有文件信息,且每隔3秒不断的执行
lsof -i @peida.linux:20,21,22,25,53,80 -r 3

最新

分类

归档

评论

其它