目录
用户与授权
在系统自带的表 mysql.user里,记录了用户名和密码的信息
Host : 允许从哪台主机登录 (客户端IP限制)
User : 用户名
Password : 密码
权限 : select ,insert, create , ...
新增登陆密码
GRANT命令的语法:
GRANT
ALL PRIVILEGES
ON *.*
TO 'root'@'127.0.0.1'
IDENTIFIED BY 'a1b2c3'
WITH GRANT OPTION;
其中,
all privileges 表示授予所有权限,其实可以把各项权限单列出来
on 指定该用户可以访问的数据库/表
to 指定用户名、和客户端IP范围
identified by 指定密码
后面还可以分别指定增删改查权限
修改密码
UPDATE mysql.user
SET `password`=PASSWORD('a1b2c3')
WHERE `Host`='127.0.0.1' AND `User`='root'
其中,PASSWORD是一个MySQL的函数,用于把字符串加密成密码字符串
允许root远程访问
GRANT
ALL PRIVILEGES
ON *.*
TO 'root'@'%'
IDENTIFIED BY 'a1b2c3'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
其中,'root'@'%' 是设置这两个字段: Host='%' User='root'
其实也设置为一个子网范围,如 'root'@'192.168.8.%' 则允许root从IP地址为 192.168.8.%的子网来访问。
立即生效
FLUSH PRIVILEGES; /* 运行此命令则立即生效,不需要重启服务器 */
注意事项
1 数据库应该设置一个密码, 如 'a1b2c3'
2 用户指的是访问数据库的用户,并非业务系统里的用户
3 MySQL一般不开放远程访问,一般限制为内网访问 (否则可能遭受互联网攻击)
4 所以,一般开放 'root'@'机户内网网段' 就够了
远程访问
1.命令行查找本地IP地址 ipconfig
2.客户端输入SQL主机地址为本地ip地址
备份与还原
备份:mysqldump.exe -hlocalhost -uroot -密码 --databases 数据库名 >d:\backup.sql(输出位置)
还原:mysql.exe -hlocalhost -uroot -密码 <d:\backup.sql (输出位置)