mysql数据库管理

用户管理

1)用户与授权
新建用户
CREATE USER 'y1905'@'%' identified by '123456';
select host,user,password from mysql.user;
删除用户
drop user 'y1905'@'%';
重命名用户
RENAME USER 'myslave'@'192.168.9.%' TO 'y1905'@'%';
给用户设置密码
当前用户修改密码
set password=password("123456");
其他用户修改密码
set password for 'y1905'@'%'=password('pwd123');
忘记密码
a、停止服务
systemctl stop mysqld
b、跳过密码直接登录
mysqld_safe --skip-grant-tables&
c、登录
[root@www ~]# mysql
mysql> update mysql.user set password=password("111") where user='root';
mysql> flush privileges;
d、kill进程myslqd
e、重启
systemctl start mysqld
f、验证
[root@www ~]# mysql -uroot -p111

授权

设置权限
mysql> grant select,update on mmm.* to 'testa'@'192.168.9.%' identified by '123';
查看授权
show grants for testa@'192.168.9.%';
撤销权限
revoke update on mmm.* from 'testa'@'192.168.9.%';

权限列表

权限说明
All设置所有权限
ALTER允许使用ALTER TABLE
CREATE允许使用CREATE TABLE
CREATE USER允许使用CREATE USER
DELETE允许使用DELETE
INDEX允许使用INDEX
INSERT允许使用INSERT
SELECT允许使用SELECT
UPDATE允许使用UPDATE
DROP允许使用DROP
REPLICATION SLAVE允许从主服务器中读取二进制文件
SHOW DATABASES允许显示所有数据库

日志管理

vi /etc/my.cnf
log-error=/usr/local/mysql/data/my_error.log   错误日志存放位置
general_log = ON    #打开通用日志,默认为OFF
general_log_file = /usr/local/mysql/data/mysql_general.log
log_bin = y2002-bin   # 如果没有写=右面的内容,自动生成主机名***-bin.00000*的日志
注意:mysql必须对指定的文件夹有读写权限,否则无法操作文件。

1)错误日志
主要记录当mysql启动和停止时,以及在运行过程中发生任何错误时的相关信息
默认保存在mysql安装路径data文件夹下,后缀名是.err
2)通用日志
通用日志用来记录mysql的所有连接和语句,默认是关闭的
3)二进制日志
二进制日志用来记录所有更新了数据或已经潜在更新了数据的语句,记录了数据的更改
默认是关闭的
二进制文件使用mysqlbinlong命令查看,格式为 msyqlbinlog mysql-bin.000001
4)慢查询日志
慢查询日志记录所有执行时间超过 long_query_time 秒的SQL语句,用于找到哪些查询语句执行时间长,以便对其进行优化。
默认是关闭的
通过配置文件更改:
vi  /etc/my.cnf
slow_query_log=ON     开启慢查询日志
slow_query_log_file=mysql_slow_query.log  指定存放慢查询日志路径,
如果没有指定绝对路径,默认保存在data目录下
long_query_time=1   设置超时时间

mysql> show variables like "%slow%";   查看慢查询功能是否开启
+---------------------------+-----------------------------------+
| Variable_name             | Value                             |
+---------------------------+-----------------------------------+
| log_slow_admin_statements | OFF                               |
| log_slow_slave_statements | OFF                               |
| slow_launch_time          | 2                                 |
| slow_query_log            | OFF         状态为OFF                      |
| slow_query_log_file       | /usr/local/mysql/data/my-slow.log |
+---------------------------+-----------------------------------+
5 rows in set (0.00 sec)

mysql> set global slow_query_log=ON;    开启慢查询功能,临时
Query OK, 0 rows affected (0.04 sec)

mysql> show variables like "%slow%";
+---------------------------+-----------------------------------+
| Variable_name             | Value                             |
+---------------------------+-----------------------------------+
| log_slow_admin_statements | OFF                               |
| log_slow_slave_statements | OFF                               |
| slow_launch_time          | 2                                 |
| slow_query_log            | ON                                |
| slow_query_log_file       | /usr/local/mysql/data/my-slow.log |
+---------------------------+-----------------------------------+
5 rows in set (0.00 sec)


mysql> show variables like "long_query_time";   查看超时时间
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |   #默认10s
+-----------------+-----------+
1 row in set (0.00 sec)

mysql> set global long_query_time=5;  #设置慢查询的时间为5s
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "long_query_time";
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |   #没有变
+-----------------+-----------+
1 row in set (0.00 sec)

mysql> show variables like "long_query_time";
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 5.000000 |   #重新登录
+-----------------+----------+
1 row in set (0.00 sec)



验证

mysql> select sleep(6);

vi my-slow.log 
/usr/local/mysql/bin/mysqld, Version: 5.6.36-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 191012 19:42:59
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 6.000773  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1570880579;
select sleep(6);

数据乱码解决

乱码产生的原因

在计算机中任何数据都是以二进制存储的,要存储一个字符就要对他进行编码,用一个二进制数与其对应,这种对应的规则的集合叫作‘字符集’。
Mysql服务器使用中经常会有乱码产生,主要有以下几种原因:

  • 服务器系统字符设置问题
  • 数据表语系设置的问题
  • 客户端连接语系的问题
    实际对乱码问题原因的简单解释就是:在使用、存储数据的时候,各个环节设置的字符集如果不同,就会产生乱码

乱码解决方法

修改字符集

  • 创建数据库时指定
    CREATE DATABASE test CHARSET utf8;
  • 创建数据表时指定
    create table idtest(id int(10)) default charset=gb2312
    show table status 可查看字符集
  • 修改MySQL配置文件
    通常都是使用修改MySQL配置文件的方法,使数据库中所有存储内容都是utf8的格式。
    修改MySQL配置文件/etc/my.cnf
    添加[client]部分,并加入:
    default-character-set = utf8
    重启后生效,只修改这一处,之后创建数据库和数据表都不需要再单独指定字符集。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值