Linux中安装MySQL遇到的问题

1,096 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.MySQL初始化的时候报错

. /bin/ mysqld: error while loading shared libraries: l ibaio.so.1: cannot open shared object file: No such file or di rectory

A60F9B09-87F5-4EF4-9925-1B1BFCE568D2.png 解决方法:

yum install -y libaio  

2.使用Navicat客户端连接8.0.17版本的数据库的时候提示

Unable to load authentication plugin 'caching_sha2_password'.

这个是因为,mysql8之前的版本使用的密码规则是mysql_native_password,但是在mysql8则是caching_sha2_password,所以需要修改密码加密规则

先登录数据库

mysql -u root -p

使用mysql库

use mysql;

修改连接用户的密码规则,这里以root为例

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root@2021';

刷新权限

FLUSH PRIVILEGES;

此时使用Navicat工具可以正常登录,也可以设置Navicat的客户端为8.x版本来解决此问题。

3.输入 mysql -u root -p 后,输入初始密码,尝试执行use mysql,报错

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

E27783A1-9124-41AC-B6D1-E80318D3082A.png

set password = password('root@2019');

alter user 'root'@'localhost' password expire never;

flush privileges;

4.输入 mysql -u root -p 后,输入密码报错如下:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

在配置数据库的时候我们在my.cnf文件中已经指定了路径,但是提示是去/tmp路径下去找,虽然我的mysql声明了sock文件的位置,但是客户端在连接的时候, linux系统总是去/tmp目录下去找,因此我们为mysql.sock创建链接文件:

ln -s /opt/mysql/mysql.sock /tmp/mysql.sock

把软链授权给某个用户组

chown -h mysql:mysql mysql.sock

5.我们在设置简单密码的时候报错 CREATE USER 'iam'@'%' IDENTIFIED BY 'user123';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个因为密码强度高,需要调低密码强度

set global validate_password_policy=LOW;

然后重新设置密码即可。

6.数据库版本为8.0.17,在使用Navicat执行SQL命令的时候,每次执行操作都会报错

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated

解决方法:

在配置文件my.cnf里面添加下面内容:

[mysqld] 

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

然后重新启动数据库即可