MYSQL 管理笔记(一)

时间:2022-01-08 01:59:21
一、查看MySQL 版本
 
1、在终端下:mysql -V  
2、在mysql中:mysql> status;
3:在help里面查找   mysql --help | grep Distrib
4:使用mysql的函数  mysql> select version();
 
二、Mysql 安装
1、 yum list | grep mysql   命令来查看yum上提供的mysql数据库可下载的版本
2、yum install -y mysql-server mysql mysql-deve  使用yum默认安装,一般不是最新的版本,可到官网去现在rpm 包进行安装
 
三、Mysql 配置
注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,如:
1、service mysqld start 
第一次启动设置 root 账号 密码
2、mysqladmin -u root password  'new-password'
3、 chkconfig --list | grep mysqld   命令来查看mysql服务是不是开机自动启动 
mysqld             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
4、chkconfig mysqld on  设置开机启动
chkconfig --list | grep mysql  再次查看

mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

 
四、mysql数据库的主要配置文件
 
1./etc/my.cnf 这是mysql的主配置文件 可以使用cat 查看
2、mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下
3./var/log mysql数据库的日志输出存放位置 可以自己在my.cnf 中配置
 
 
五、切底删除mysql
rpm -qa|grep mysql                         查看是否还有mysql软件

yum remove mysql mysql-server mysql-libs compat-mysql51

rm -rf /var/lib/mysql                         删除mysql 文件目录
rm /etc/my.cnf                                  删除mysql 配置文件
 

可以通过 netstat -anp 命令来查看一下,Linux系统是否在监听 3306 这个端口号:

六、用户管理

1、创建用户:

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';

说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,

如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password –  该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

2、授权命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; 
GRANT ALL ON *.* TO 'pig'@'%';

说明: privileges – 用户的操作权限,如SELECT , INSERT , UPDATE  等(详细列表见该文最后面).

如果要授予所的权限则使用ALL.;databasename –  数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

 如果想让该用户可以授权,用以下命令:

        GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

3、设置与更改用户密码

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

 如果是当前登陆用户用 SET PASSWORD = PASSWORD("newpassword");

4、撤销用户权限  REVOKE privilege ON databasename.tablename FROM 'username'@'host';

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户’pig’@'%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO  ‘pig’@'%’,

则在使用REVOKE SELECT ON *.* FROM  ‘pig’@'%’;

命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON  *.* TO ‘pig’@'%’;

则REVOKE SELECT ON test.user FROM  ‘pig’@'%’;命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR ‘pig’@'%’; 查看.

5、删除用户 DROP USER ‘username’@'host’;

七、开启慢查询

1、动态开启,不用重启服务

幸好在mysql5.1中已经为我们提供了在线设置慢查询日志的方法,

通过设置mysql系统变量就可以达到这个目的。这样就不用重启mysql了。

    在线开启慢查询日志:
    1. mysql > set global slow_query_log=1;
    2. mysql > set global long_query_time=3;
    3. mysql > set global slow_query_log_file=’mysql-slow.log’;
            如果不需要记录慢查询了,可以很方便的关闭:
    1. mysql > set global slow_query_log=0;

注意:在5.1.29以前用的是log_slow_queries变量,5.1.29及之后的版本log_slow_queries变量就用slow_query_log变量代替了。

slow_query_log指定开启还是关闭,slow_query_log_file指定日志文件filename,long_query_time指定慢查询的阈值。

  注意2:long_query_time变量从MySQL 5.1.21开始,可以被设置的最小值为0,且精度可以被设置到微秒级(例如值可以被设置为 1.000002,即1秒又2微秒);

而在5.1.21之前的版本,这个变量可以被设置的最小值为1,且只能为整型。

2、在my.cnf 在配置

 

3、查看慢查询日志

命令mysqldumpslow 分析 MYSQL

show variables like ‘%slow%’; 查看MYSQL 慢查询日志存放路劲

mysqldumpslow 的常用参数如下:

-s 后面接下面的参数表示 mysqldumpslow 结果显示的顺序!

c query执行的次数

t sql执行的时间

l lock锁表的时间

r sql返回的行数

ac,at,al,ar,表示倒序排列

-t,是top n,即为返回前面n条数据。

-g,后边可以写一个正则匹配模式,大小写不敏感

我常用 mysqldumpslow -s al -t 20 slow.log