OS X下mysql创建用户与修改密码

来源:互联网 发布:淘宝文具店推荐 编辑:程序博客网 时间:2024/06/03 20:06

我用的系统是OS X 10.11.5, 使用的mysql版本是5.7.16。其实插入一个用户是操作数据库一个最基本的操作,但是按照网上的方法,各种不行:

mysql> insert into mysql.user(Host,User,Password) values("localhost","zhangyu",password("7806251"));

比如使用这个语句,shell里面会报错:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

查了一个网上的资料,我还修改了一个叫mysql-default.cnf的配置文件,导致mysql的包初始化把我原来设置的登陆密码给覆盖了,真是得不偿失,我不得不重装mysql。

所以我们就不用insert方法去插入用户了,我们可以使用分配权限的方法的去创建用户:

GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;##“username”替换为将要授权的用户名,比如clientusr;##“password”替换为clientusr设置的密码;##locaohost可以改为%,方便你从别的IP登录,如果你是新手,只需要本地数据库,就不用修改了

当你创建完用户之后,你可以给新创建的用户在root模式之下创建一个数据库,新创建的用户可以使用这个数据库,但是它没有权限创建数据库,比如说,我创建一个叫test1的数据库:

create database test1; #授权zhangyu用户拥有test1数据库的所有权限grant all privileges on test1.* to zhangyu@localhost identified by '7806251'; 
mysql> FLUSH PRIVILEGES;

注意最后要使用 FLUSH PRIVILEGES 语句。 这告诉服务器重新加载授权表。如果不使用它,那么将无法使用新的用户帐户连接到MySQL服务器,至少在服务器重新启动后才可以。

当我需要改变用户的登陆密码时,一般的教程一般会教我们使用下面的语句:

这里写图片描述
but it didn’t work in OS X,而且这行指令还不能出现在CSDN的blog里面!是因为撞库之类的事情吗?所以我不得以用照片的形式传上来了。
我们应该使用:

SET PASSWORD = PASSWORD('7806251');

记住这些指令应该是非常简单的了,但是数据库系统背后的原理到底是什么,还得继续努力学习数据库系统背后的原理。

还有,当我有问题需要搜索的时候,我才发现stackflow是一个神奇的地方,以后应该更多的使用。

谢谢木哥的blog
谢谢fly哥的blog
非常感谢他们

0 0