提示:【mysq 01】:主窗口 【mysq 01-1】:副窗口
一、创建新账户并授权: 必须是超户root
1、创建新账户并授权:grant 命令
【mysq 01】:
登陆位置:ip地址(仅以此ip远程登录)/localhost(仅服务器本地本地登录)/%任意位置,远程本地均可。
库和表定位:*.* 所有库中的所有表;mysql.* mysql库中的所有表
授权:即赋予账户何种权限:①all所有权限②select查③create增④update改⑤drop删库或表/dalete删内容
通配符:①%任意一个或多个字符②_任意一个字符
例1、grant all on *.* to 'zzz'@'192.168.71.143' identified by '123123';
例2、grant all on mysql.* to 'aaa'@'localhost' identified by '123123';
例3、grant select on mysql.* to 'aaa'@'%' identified by '123123';
查看最新用户列表:select user,host,password from mysql.user;
登录账户:【mysq 01-1】:
1、mysql -uzzz -p123123 -h localhost 标绿可不写,均为默认服务器本地登录
mysql -uzzz -p123123 -h 192.168.71.143 此账户以此ip远程登录mysql
案例1;
【mysq 01】:创建aaa用户
grant all on mysql.* to 'aaa'@'192.168.71.143' identified by '123123'; 新建账号aaa并只给其执行mysql库的所有表权限
【mysq 01-1】:登aaa账户 mysql -uaaa -p123123 -h 192.168.71.143;
show databases; 查看数据库中都有哪些库
use mysql; 选则mysql库
show tables; 执行后发现近可查看mysql库数据,看不到其他库中数据
select * from mysql.proc; 查看mysql库中的proc表
二、查看/修改/撤销账号权限 必须是超户root
1、查看账号权限:show grants;命令
语法:show grants for '账号名'@'来源位置';
show grants for 'aaa'@'locaihost'; 查看用户名aaa且以本地登录的账号权限
show grants for 'aaa'@'192.168.71.143';
show grants for 'aaa'@'%';
2、撤销账号权限: revoke命令 revoke on from
语法:revoke 权限 on 库名.表明 from '账号名'@'来源位置';
①revoke drop,update on mysql.proc from 'aaa'@'192.168.71.143';
②flush privileges 立即刷新权限,必须刷新
检验:show grants for 'aaa'@'192.168.71.143'; 查看aaa权限
三、用户账号管理 ①②③④
3.1、重命名账号(给账号改名):rename 命令
语法:rename user '旧名'@'登录来源' to '新名'@'登录来源';
(提示:可以只改账号名,也可以只改登录来源,也可以账号名和登录来源都该)
select user,host,password from mysql.user; 查看当前所有账户,发现已改
3.2、修改账户密码:
3.2.1方案一:不能直接用update,因update修改后内容未加密无法登录
正确用法:update套用password('新密码')参数
语法:update mysql.user set password=password('新密码') where user='账户名';
【mysq 01】:
①update mysql.user set password=password('123') where user='yun';
②flush privileges 立即刷新权限,必须刷新
【mysq 01-1】:③检验登录:mysql -uyun -p123 -h 192.168.71.143;
3.2.2方案二:给当前登陆账户修改密码(不用update)
【mysq 01】:语法:set password=password('新密码');
①select user(); 查看当前登录用户,得知当前用户为root
②set password=password('123'); 将新密码改为123
③flush privileges 立即刷新权限,必须刷新
【mysq 01-1】:④检验登录:mysql -uroot -p123 -h 192.168.71.143;
3.2.3方案三:给其他账户修改密码(不用update)必须是超户root
语法:set password for '用户名'@'登陆来源' =password('新密码');
【mysq 01】:
①select user(); 查看当前登录用户,得知当前用户为root
②set password for 'yun'@'192.168.71.143' =password('123');
③flush privileges 立即刷新权限,必须刷新
【mysq 01-1】:④检验登录:mysql -uyun -p123 -h 192.168.71.143;
3.2.4忘记密码时的解决办法:详见教案第六册-MySQL数据库.pdf第39页
3.3、删除账户:【mysq 01】:drop user 'zzz'@'192.168.71.143';
等效于delete from mysql.user where user='zzz';
四、mysql日志管理 (四种日志默认路径均为/usr/local/mysql/data)
1、错误日志:
vim /etc/my.cnf 打开配置文件,在[mysqld]模块下添加以下语句:
log-error = mysql_error.log 保存退出。
(提示:log-error记录错误指令,mysql_error.log为保存路径,默认在/usr/local/mysql/data下,但工作中可能会指定到其他路径。
/etc/init.d/mysqld restart 重启即可生效。
cat /usr/local/mysql/data/mysql_error.log 查看错误日志
2、通用查询日志:工作中默认关闭,因其记录所有连接和增删改查命令,常用于测试阶段,占用较大。如需开启请修改配置文件。开启方式:
vim /etc/my.cnf 打开配置文件,在[mysqld]模块下添加以下语句:
log = on 开启此日志
log = /usr/local/mysql/data/mysql_genneral.log 保存路径,保存退出
/etc/init.d/mysqld restart 重启即可生效。
tail -f /usr/local/mysql/data/mysql_genneral.log 发现此日志记录了自首次安装启动mysql起对mysql执行的所有命令。
3、二进制日志:默认已开启,无需编辑,只记录对数据产生改变的语句,不记录不改动数据库的语句(即只记录增删改,但不记录查。)(这是下节课重点)
vim /etc/my.cnf 打开配置文件,查看[mysqld]模块下:
log-bin = mysql-bin 系统默认就有这个,不用编辑
cd /usr/local/mysql/data/
mysqlbinlog mysql-bin.000001 打开此日志。mysqlbinlog,查询通用日志命令
4、慢速查询日志:工作中常用,建议自行扩展。
某些mysql语句执行太慢影响用户体验和效率,日志会记录此类语句到默认路径为/usr/local/mysql/data/ mysql_slow.log文件下,提交开发后可供开发改进优化,无需运维改动。 开启方式:
vim /etc/my.cnf 打开配置文件,在[mysqld]模块下添加以下语句:
long_query_time = 5 按须设定界定为慢速的时间,单位s,秒
log-slow-queries = mysql_slow.log 保存退出
/etc/init.d/mysqld restart 重启即可生效。
ll /usr/local/mysql/data/ mysql_slow.log 查看有无慢速日志,有则递交开发,无需运维改动。
五、mysql数据库乱码解决办法
vim /etc/my.cnf 打开配置文件,在[mysql]模块下添加以下语句:
default-character-set = utf8 保存退出
/etc/init.d/mysqld restart 重启即可使中文字符集生效。