首页 > 经验充电 > Mysql管理及优化设置基础命令整理
2019
07-06

Mysql管理及优化设置基础命令整理

1、查看数据列表: show databases;  

image.png

2、创建数据库: create database xxxx;   其中xxxx为要创建的数据库名

image.png

3、删除数据库: drop database xxxx;   其中xxxx为要删除的数据库名

image.png

4、查看数据库真正的data目录路径: show variables like "datadir";

image.png

5、查看数据库当前连接进程信息: show processlist;   (显示前100条连接进程信息)     show full processlist;  (显示当前所有连接进程信息)

image.png

6、查看数据库运行状态信息,可以看到很多项目: show status;

image.png

7、查看数据库概要信息:status;  其中Threads后面的值即数据库当前连接数

image.png

8、修改数据库用户密码:  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');   其中标红的按照自己实际需求修改为自己要设置密码的用户名和密码即可

9、查看当前登录用户: select user();

image.png

10、查看数据库版本: select version();

image.png

11、查看数据库里所有用户及对应登录权限: select user,host from MySQL.user;

image.png

12、进入数据库: use xxxx;    其中xxxx为要进入的数据库名

image.png

13、创建用户xxxx,使之可以管理数据库xxxx: grant all on dbname.* to 'username'@'localhost' identified by 'pw';    其中dbname为指定的数据库名,username为管理这个数据库的用户名,pw为用户名的密码

image.png

14、创建数据库管理用户xxxx: grant all on *.* to 'username'@'localhost' identified by 'pw' with grant option;   其中username为用户名,pw为用户名的密码

image.png

15、删除用户及对应权限: drop user xxxx@localhost;   其中xxxx为要删除的用户名,@后面为该用户的权限(本地权限还是远程权限),请注意区分!

image.png

16、授权Mysql服务器允许root远程登录,用于在其他服务器登陆!(注意:要将3306端口添加到防火墙例外规则,以免远程登录被防火墙拒绝)

mysql> grant all on *.* to 'root'@'%' identified by '123.com';         //设置允许远程登录的用户名和密码,其中%表示所有主机,也可指定某个ip段,比如192.168.1.%

mysql> flush privileges;     //重载权限

image.png

17、查看MySQL当前使用的默认存储引擎

mysql> show variables like '%storage_engine%';

image.png

18、查看并设置MySQL当前连接关闭超时时间wait_timeout   (注意:如果你的sleep进程数在同一时间内过多,再加上其他状态的连接,总数超过了max_connections的值,那mysql除了root用户外,就无法再继续处理任何请求,无法与任何请求建立连接或者直接挂了; wait_timeout 过大,会导致MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过设置的过小,可能会遇到“MySQL has gone away”之类的问题)

mysql> show global variables like 'wait_timeout';

image.png

mysql> set global wait_timeout=120;  (注意此命令会立即生效,但是重启MySQL服务后此设置会失效,如果需要永久设置,请在MySQL配置文件my.ini中添加对应的设置参数)

image.png

造成睡眠连接(sleep连接)过多的原因有哪些呢?

1、使用了太多持久连接(一般在高并发系统中,不适合使用持久连接)

2、程序中,没有及时关闭mysql连接。

3、数据库查询不够优化,过度耗时。

4、MySQL参数优化不合理,未及时关闭sleep连接

针对以上4中原因,可以参考下面的方法进行检查和优化:

1、程序中,不使用持久链接,即使用mysql_connect而不是mysql_pconnect。

2、程序执行完毕,应该显式调用mysql_close。

3、分析系统的SQL查询,找到查询过慢的SQL,进行优化。

4、修改MySQL全局连接wait_timeout设置(如上述方法)

19、查看并设置MySQL最大连接数max_connections  (注意:MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;增加max_connections参数的值,不会占用太多系统资源。该参数设置过小的最明显特征是出现”Too many connections”错误)

mysql> show global variables like 'max_connections';

image.png

mysql> set global max_connections=1000;  (注意此命令会立即生效,但是重启MySQL服务后此设置会失效,如果需要永久设置,请在MySQL配置文件my.ini中添加对应的设置参数)

image.png



本文》有 0 条评论

留下一个回复