MySQL的安装和用户权限账户密码
目录
MySQLD的安装
mysql下载完成之后,解压打开后文件大概是这个样子,其中my.ini 是配置文件,刚刚打开的安装包可能有多个.ini 文件
这个是为了不同的操作系统和不同规格的数据库准备的,修改其中的一个.ini 为my.ini 作为本安装的设置文件。
配置文件大概是长下面的这个样子,其的端口号是mysql的服务器的端口。basedir是数据库的文件夹,datadir是数据库的数据文件夹。[client] 是指的mysql的客户服务程序,其中的/dir/dir 是在linux环境下的路径设置,应该也是可以在window下使用,mysql是两个平台通用的。 [mysqld] 是配置mysql的服务端的程序。
我们要使用客户端也就是mysql 这个客户服务端口,必须要先启动mysql的服务端。也就是mysqld
进入了对应的文件路径后,当输入: mysqld --consold 之后,就会启动mysql的服务端,这样才可以使用mysql的客户端。
但是,这样的话,关掉就关掉了,不是在后台运行的,所以我们可以将mysqld注册为后台服务程序。这样就可以一直运行了
指定这个后台服务每次启动的初始化文件,然后安装这个后台程序。同时这个后台服务名称被命名为mysqldb1。
这个名称的使用可以让mysql的服务程序注册为多个,并且可以通过名称控制删除对应的服务程序。要注意一点的是不同的后台服务程序的.ini文件要修改一下,不同的后台服务端口要设置不同,默认是3306,多个服务程序要修改成不同的端口,文件的路径也要不同。可以看上面的配置文件图片。
这里注册完毕之后,可以通过系统的服务 来启动对应的服务程序。这样后台服务可以一直运行。
MySQL的客户端的使用
启动和登录
安装好后台服务程序之后,就可以启动mysql的客户端进行相对应的操作,启动客户端的方式window下可以通过cmd命令进入到对应的安装文件夹下面的bin文件夹,或者是将这个文件夹添加到系统路径,这样就可以不需要到指定的文件夹下面。然后输入:mysql -u luopeng -p -h 192.168.10.93 期中的 -u 后面的字段是用户名 -p 是密码 -h 是登录的连接方式。通过本机的局域网IP192.168.10.93 登录。如果不输入 -h XXXX 字段默认是 通过 localhost 连接登录。 输入:mysql -u root -p 是通过根权限管理员的方式登录。然后输入密码,如果没有密码,直接就按回车键。然后就登录成功了。
查看数据文件
进入到了mysql的客户端后,通过输入:show databases; 就可以显示当前的所有本账号可以查看到的数据库文件。注意的是(1)命令的最后一个是‘;’,如果没有输入的话,会是多行命令输入,不会执行。
(2)不同的账号,权限不一样,可以看到的文件也不一样。root 账号有最高权限,可以看到所有的文件。期中mysql这个数据文件,里面存放的就是本服务端的一些系统数据,比如说账户信息,账户的权限信息等等。可以通过修改这个数据文件里面的不同的表来操作系统的设置和信息,比如说增加用户和修改用户的权限,密码等。
(3)test是系统一开始自己创建的一个数据文件,所有的用户都有权限访问,可以删掉。
查看某个数据文件
当知道了有哪些的database之后,可以选择先选择某个database,表明对其进行操作 ,使用:use XXX; 比如说:
进入到了某个database之后,可以使用show tables;查看这个 这个数据文件里面有那个些的表格
知道了有什么些表格之后,比如上图的mysql里面的有这么多表格,最后一个是user表格,里面放置的就是用户的账号信息。我们修改用户信息,用户权限等,就是修改这个表格。
当我们想知道这个表格里面有哪些字段的时候,可以用show columns from XXX;来显示,如下图所示。
这样的话,就可以知道有什么字段了
然后就可以对表进行选择显示了 比如说:select user,host,from user;
这里表示从user这个表里面显示user 和host字段然后就可以看你想要的的信息了。
查看 状态
可以通过show status;查看当前的状态,这个里面的信息很丰富。
show grants;来查看用户的权限信息,
show errors;可以查错误信息
show warnings;查看警告
MySql的用户权限和密码
通过上面,我们进入root 用户查看user这个表格中可以看到下面这个表,这个里面显示了目前的所有的账户的信息,
(1)其中root账户有三个,其实是一个,有三个的原因是host的方式有三个,一个是127.0.0.1这个指向本机的IP,一个是IPV6格式的下的指向自己的地址,一个localhost这个域名。
(2)可以发现 luopeng这个账户的host方式是% 这个表上这个账户可以使用任何的host方式,除了localhost这种方式,也是说你登录的时候,必须用 mysql -u luopeng -p -h 192.168.10.93这样的登录方式。如果没有 -h xxxx就是默认 localhost登录方式,这样是登录不成功的。
(3)同时我们可以看到,root的登录方式只有本地登录这一种方式,你不能用其他的外部网络接入。
(4)我们发现这里有个没有名字的账号,这个是默认的客户账号,就像是window的访客账号一样,当你直接启动mysql 啥都不输入,就会进入这个账号,权限比较低。
账号的创建
账号可以通过:create user xxxx;来创建没有名字的用户,或者是 create user test identified by '123456';来创建一个有密码的用户;
账号的改名:
使用 rename user xxxx to newname;
账号的删除
使用:drop user XXXX;
账号密码更改:
可以使用:set password for XXXX =Password(' newpassword ');
如果是 set password =Password(' newpassword '); 就是给自己改密码,上面的是给别改密码
账号的权限
可以通过:show grants;来查看账号的权限,然后就可以看到用户的权限了
show grants for XXX;就可以查看XXX的权限了,比如说这样,
然后我们可以看到这个,里面只有一个grant usage on 只可以查看grant,没有其他的权限,这样的话,这个账号不可以做其他的事情,查询的数据文件,也只有系统自建的一个空的test。所以我们要赋予这个账号权限
可以用:grant select on XXX.* to luopeng;来赋予这个账号可以查看这个数据文件的权限
如果我们想删除这个用户访问这个数据文件的权限怎么办?
使用:revoke select on XXX.* from luopeng;这样这个账号就没有查看这个数据文件的权限
当用这个账号登录使用show databases;的时候,就看不到这个数据文件了。
ROOT 密码忘记
当我们的使用set password =Password(‘XXXX’);修改了root账号的 密码之后,并且忘记了怎么办?
首先,我们要通过系统服务里面找到我们使用的mysqld这个服务端的服务程序,并且关掉它,然后找到my.ini这个文件
在[mysqld] 下面添加一句设置:skip -grant-tables 然后保存。这样的话,重新启动这个服务端,它就会暂时忽略权限表,那么久不需要密码,可以直接进入root账号进去。
然后使用 : updata user set password=password(‘XXXX’) where user='root';
修改root的密码;
然后:flush privileges;刷新权限表;
这个时候赶紧退出,然后停止服务程序,然后再修改my.int 这个文件,让它改回来原来的样子。
这个方式(1)要修改my.int 文件(2)必须重新启动mysqld
所以一般只有管理员亲自才有可能修改的。