mysql 建库报匿名用户权限错误

报错信息:

ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘meitu‘

系统环境:

  • Centos 7.5
  • Mysql Server version: 5.6.48

分析原因:匿名用户(‘‘)权限报错

问题描述:

安装好mysql后,root用户账户登录mysql,创建一个新数据库时,提示报错,如下:

[root@localhost mysql]# mysql -urootWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 3Server version: 5.6.48 MySQL Community Server (GPL)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema |+--------------------+1 row in set (0.00 sec)mysql> create database meitu charset=utf8;ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘meitu‘

解决方法:

1. 在/etc/my.cnf的[mysqld]字段下加入:skip-grant-tables , 如下截图

2. 再重启mysqld服务

[maaiqiang@localhost ~]$ systemctl restart mysqld

这时的mysql不需要密码即可登录数据库

3. 登录进入mysql,执行以下命令

mysql > use mysql;mysql > delete from user where USER=‘‘;mysql > flush privileges;mysql > exit;

4. 再删除/etc/my.ini中的skip-grant-tables,重启mysqld服务即可正常建库了。

相关文章