用户与授权GRANT
用户与密码
默认的,MySQL自带root用户,而且密码为空
系统表mysql.user
在系统自带的表mysql.user里,记录了用户名和密码的信息
mysql.user内的元素:
Host:允许从哪台主机登录(客户端IP限制)
User:用户名
Password:密码
权限:select,insert,creat,…
注:这个表是用了联合主键Host+User
设置用户授权GRANT
GRANT命令用法:
设置密码
GRANT
/*all privilege表示授予所有权限,其实可以把各项权限单列出来*/
ALL PRIVILEGES
/*on指定该用户可以访问的数据库、表*/
ON 库名.表名
/*to指定用户名和客户端IP范围*/
TO '用户名'@'IP地址'
/*identified by指定密码*/
IDENTIFIED BY '密码'
/*后面还可以分别制定增删改查权限*/
WITH GRANT OPTION;
示例:
//给localhost增加一个值为‘12345’的密码
GRANT
ALL PRIVILEGES
ON *.*
TO 'root'@'localhost'
IDENTIFIED BY '12345'
WITH GRANT OPTION;
修改密码
示例:
UPDATE mysql.user
SET`password`=PASSWORD('12345')
WHERE `HOST`='127.0.0.1'AND `USER`=`root`
其中,PSEEWORD是一个MySQL的函数,用于把字符串加密成密码字符串
允许root远程访问
即允许客户端从任意IP来访问服务器
GRANT
ALL PRIVILEGES
ON *.*
TO 'root'@'%'
IDENTIFIED BY '123456'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
其中,‘root’@’%'是设置这两个字段:
Host='%'
User='root'
其实也设置为一个子网范围,如’root’@'192.168.8.%'则允许root从IP地址为192.168.8.%的子网来访问
注意:
1、数据库应该设置一个密码
2、用户指的是访问数据库的用户,并非业务系统里的用户
3、MySQL一般不开放远程访问,一般限制为内网访问,否则可能遭受互联网攻击
4、一般开放’root’@'机户内网网段’就足够了
允许远程访问
远程访问:指从另一台电脑登陆访问MySQL服务器
服务器配置
1、在MySQL里,允许’root’@’%'访问
2、关闭防火墙
服务器配置
修改my.ini里的配置项,重启MySQL生效
MySQL文件里的数据和程序是分开的,程序在bin目录下,数据在data目录下
备份与还原
数据库备份可以防止数据意外丢失,需要做到:
1、定期导出数据
2、出现意外灾害时,重建服务器,并导入数据
方法一、自动操作:
右键需要备份的数据库 -> 点击备份/导出 -> 点击备份数据库,转储到SQL -> 导出
SQL转储有结构唯一、仅有数据、结构和数据三个选项,一般情况下选择结构和数据
然后到数据库data目录,可以看到被导出的sql脚本文件
方法二、使用MySQL自带工具
mysqldump.exe(用于备份)
Mysql.exe(用于还原)
1、打开cmd
2、切换到mysql的bin目录
3、打开mysqldump.exe导出数据库,输入如下:
mysqldump.exe -hlocalhost -pa1b2c3 --databases school >d:\backup.sql
其中:主机localhost,用户名root,密码a1b2c3,数据库school,导出到d:\backup.sql
打开导出目录里的backup.sql就是该数据库的导出文件
4、导入SQL
mysql.exe -hlocalhost -uroot -pa1b2c3 <d:\backup.sql