最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

linux下mysql的用户管理及访问问题

来源:懂视网 责编:小采 时间:2020-11-09 08:17:28
文档

linux下mysql的用户管理及访问问题

linux下mysql的用户管理及访问问题:欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 6 rows in set (0.01 sec) 第一种方式是grant,可以给用户指定权限,all代表所有的权限,可以改成别的如select,insert,update,delete,后面的*.*代表是所有的数据库都有权限,一般格式为:数
推荐度:
导读linux下mysql的用户管理及访问问题:欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 6 rows in set (0.01 sec) 第一种方式是grant,可以给用户指定权限,all代表所有的权限,可以改成别的如select,insert,update,delete,后面的*.*代表是所有的数据库都有权限,一般格式为:数

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 6 rows in set (0.01 sec) 第一种方式是grant,可以给用户指定权限,all代表所有的权限,可以改成别的如select,insert,update,delete,后面的*.*代表是所有的数据库都有权限,一般格式为:数据库名。

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  6 rows in set (0.01 sec)

  第一种方式是grant,可以给用户指定权限,all代表所有的权限,可以改成别的如select,insert,update,delete,后面的*.*代表是所有的数据库都有权限,一般格式为:数据库名。*,test是用户名,123是密码,localhost代表匹配的主机,也可改为别的,如"",空的,代表所有主机。而第二种方式为直接修改数据库表,但是没有指定权限,为了安全起见,应该给用户相应的权限。查看user信息也是一条sql语句,当然还可以用过select * from mysql.user;查看更多的信息,这里的密码是经过加密的。删除用户也就是sql语句:delete from mysql.user where user='XXX';.

  当然这样还不行,在操作完user表后,还得加上一条命令flush privileges;刷新系统权限表,不然就算添加的用户也不能用,删除的用户也可以登录。

  3.访问mysql问题

  访问mysql最常出现问题的就是空密码,刚开始我为了图个方便就没有修改root的密码,让它保持空的,但是在后面的操作就老是出现问题,而且是莫名其妙的问题,所以mysql安装完成后建议将密码改为非空。

  问题1.Access denied for user 'root'@'localhost' (using password: NO)

  Access denied for user 'root'@'localhost' (using password: YES)

  我没有修改root密码,就让他保持为空的,然后通过mysql -u root来登录,登录过几次之后,莫名其妙的报了using password: NO的错误,好吧,那我就通过mysql -u root -p来登录,不用提示输入密码就直接回车,妈蛋还是报了using password: NO的错误。那我就该一下密码吧mysqladmin -u root -p password '123',报了mysqladmin: connect to server at 'localhost' failed,using password: YES的错误。

  于是通过mysqld_safe的方式启动,查看了mysql.user的数据,里面的root密码的确为空啊,我靠还能不能一起开心的玩耍啊。

  在网上搜了一下,很多人也遇到跟我一样的问题,解决办法就是修改user表将root的密码改为非空:

  # /etc/init.d/mysql stop

  # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

  # mysql -u root mysql

  mysql> UPDATE user SET Password=PASSWORD('123') where USER='root';

  mysql> FLUSH PRIVILEGES;

  mysql> quit

  # /etc/init.d/mysqld restart

  # mysql -uroot -p

  Enter password: <输入新设的密码123>

  问题2.ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db_mysql'

  偶然的机会居然用空的root密码登录进去了,然后新建数据库db_mysql,就报了这样一个错误,我明明是root登录的,怎么变成空的了,这是个什么用户,我根本就没创建这个用户啊,然后select * from mysql.user;查看,还真有这样一个用户,用户名和密码都是空的,可是我root登录的居然变成了这样一个空用户,原因我现在都还没搞清楚,但是可以想到和root的密码为空肯定有关系,于是又搜了一下解决办法,将这个空用户删除就OK了:

  # service mysqld stop

  # mysqld_safe --skip-grant-table

  新开一个终端执行

  # mysql -u root mysql

  mysql> delete from user where USER='';

  mysql> FLUSH PRIVILEGES;

  mysql> \q

  出现这些问题都和密码为空有关,当我把root密码改为非空之后,再登录进行操作就没有遇到过这些问题了,所以建议安装好mysql后就修改root密码。当然登录的时候密码输错了也会出现using password: YES的错误,这个和空密码无关。

[1] [2]

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

linux下mysql的用户管理及访问问题

linux下mysql的用户管理及访问问题:欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 6 rows in set (0.01 sec) 第一种方式是grant,可以给用户指定权限,all代表所有的权限,可以改成别的如select,insert,update,delete,后面的*.*代表是所有的数据库都有权限,一般格式为:数
推荐度:
标签: 进入 用户 访问
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top