mysql向user表中添加用户时出错

打开mysql数据库,show databases; 如果只有二个表:information和test。可以判断出登陆的用户权限不够。show status;可以看到目前数据库状态。

USE mysql; SHOW TABLES;中有一个user表,可往其中添加用户,create user ''@'localhost' identified by '';,如:

可以知道插入的密码是明文,必须对这个用户赋权限,使用GRANT语句,grant all on *.* to ''@'localhost'; 同时要FLUSH PRIVILEGES;才能使插入用户成功。这样就不会出现上面的错误了。


Mysql create user:

1.mysql>CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';

2.mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost'; 或者:mysql>GRANT ALL ON *.* TO 'user1'@'localhost';或者:mysql>GRANT ALL ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'pass1';

3.mysql>INSERT INTO user (Host,User,Password,Select_priv,Insert_priv)

VALUES('localhost','user4',PASSWORD('pass3'),'Y','Y');


mysql中应该分辨127.0.0.1与localhost的区别:

1. mysql -h 127.0.0.1 的时候,使用TCP/IP连接, 
mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain" 

2. mysql -h localhost 的时候,是不使用TCP/IP连接的,而使用Unix socket; 
此时,mysql server则认为该client是来自"localhost" 

在mysql授权的时候还是用127.0.0.1比较合适。


更改密码:

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值