Linux中安装MySQL遇到的问题
1.MySQL初始化的时候报错
. /bin/ mysqld: error while loading shared libraries: l ibaio.so.1: cannot open shared object file: No such file or di rectory
解决方法:
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.
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
然后重新启动数据库即可
转载自:https://juejin.cn/post/7141919626954276871