MySQL数据库日常管理

在windows上手动运行服务器:

mysqld

如果想要错误信息进入控制台窗口,而不是进入错误记录(host_name.err文件中)

mysql --console

如果想停止服务器

mysqladmin -p -u root shutdown

在windows上,Mysql服务器可以用下面的命令安装完一项windows服务

C:\mysql\bin\mysqld --install

或者是安装为服务,并手动启动

C:\mysql\bin\mysqld --install -manual

在安装为一项服务的时候可以指定一个服务名

C:\mysql\bin\mysqld --install service_name

如果没有给出那就以MySQL服务名

安装为一项windows服务的时候,启动和停止服务如下:

net start MySQL

net stopMySQL

如果从服务表中删除MySQL,先关停正在运行的服务器,然后发出

mysql --remove

如果你在安装为windows的一项服务的时候指定服务名。则

mysql --remove service_name

如果你在windows上没有以windows服务运行服务器,在关闭计算机前,先手痛关闭服务器。

对MySQL服务器的连接监听情况进行控制

在所有的平台上,MySQL服务器都监听着供TCP/IP使用的网络接口,除非你在启用时给出了 --skip-networking选项。默认的端口号是3306  可以使用--port 指定另一个端口号。

在支持命名管道的windows服务器上命名管道默认是被竟用的。而且使用--enable-named-pipe选项启动,如果在运行服务器的机器上运行客户端,也能使用命名管道进行连接。

默认情况下,命名管道的名称为MySQL。如果在连接到mysqld时未给定主机名,MySQL客户端首先会尝试连接到命名管道。如果不能工作,将连接到TCP/IP端口。使用“.”作为主机名,可在Windows平台上强制使用命名管道。

但你可以使用--socket选项另外指定一个不同的命名管道名称。

在windows上,MySQL还支持共享内存连接,但这种支持默认是禁用的。必须以 --shared-memory选项启动服务器才能启用它。在启用之后,它将成为本地客户的默认连接协议。本地客户还可以使用--protocol=memory选项来明确的表明我

想使用内存共享。在默认情况下,共享内存的名字是MYSQL(区分大小写。)可以使用--shared-memory-base=name选项另外指定一个不同的名字。

之后是对授权的一些补充:

要求账户建立安全链接:

 grant all on sampdb.* to cac@localhost require sll;

如果还想严格一点,可以要求客户提供一份合法的X509证书。

 grant all on sampdb.* to cac@localhost require X509;

在grant语句中all只能单独出现,不能和其他的权限说明符列在一起。

只允许sampadm用户每小时最多链接10次,每小时最多发出200条语句命令(最多只能有50条是修改命名)。

grant all on  sampdb.* to 'sampadm'@'localhost' with max_connections_per_hour 10 max_queries_per_hour 200  max-updates-per_hour 50;

如果具有reload权限,只要发出一条flush user_resources语句对当前计数值进行复位。

维护日志

出错日志。这个日志记载了服务器启动或停止的情况,还记载着关于故障或异常状况的消息。如果服务器无法启动,首先应该看下这个日志。

常归查询日志。该日志主要包括连接的记录、来自客户的SQL查询和其他各种的事件。该日志有助于监视服务器的活动:谁在连接,从何处连接和他们在做什么。当你想要确定客户发送值服务器的查询时什么时,这是最方便使用的日志。

慢查询日志。该日志的用途是改善性能,帮助你重新写所需要的语句。它会将你定义为慢的查询,这个时间long_query_time设置。慢查询也记录不用索引的查询。

二进制日志和二进制日志索引文件。这个日志由一个或多个文件构成,里面记载着由UPDATE、delete、insert、create table |drop table、grant等语句完成的数据修改情况。

a.  它可以配合数据库备份文件在系统发生崩溃后对数据表进行恢复。

b.  在复制机制中,通过二进制日志吧主服务器上发生的数据修改事件传输到从服务器去

中继日志和中继索引文件。如果某个服务器时复制机制中的从服务器,它将维护者一个中继日志,里面记录着从服务器接受的、日前尚未执行的数据修改事件。

    除非系统管理员明确的提出了要求,否则MySQL服务器时不会主动的创建人和日志的,但这里有两个例外。

a.在unix系统上,如果使用了mysqld_safe脚本来启动服务器,该脚本将创建出错日志并告诉服务器去使用它。

b.在windows系统上,只要没有—console选项表明你想让诊断小欧系被发送到控制台而不是被发送到一个文件,服务器就会创建出错日志。

日志由mysqld程序的部分启动选项控制。除了二进制日志和中继日志外,这些日志都是以可以直接阅读的文本格式写的。

在刚开始学习使用MySQL的起步阶段,建议大家在启用其他日志的时候别忘了吧常规日志也加进去,等获得了一定的MySQL经验之后再关闭常规日志功能以减少硬盘的消耗。

怎样知道当前的日志
mysql> show master status;

通用型的系统变量:

delayed_queue_size:就是insert ,delayed语句的那个队列的数据行的最大个数。加大这个变量将使更多的insert 等语句得到快速处理

max_allowed_packet:MySQL服务器与客户之间通信时使用的缓冲区的最大长度。最长值为1GB.默认为1MB.如果缓冲区经常有非常长的语句需要加大这个值。

max_connections:这是MySQL服务器允许同时处于打开状态的客户连接的最大个数。

table_cache:表缓存的尺寸。加大这个值,将能同时打开更多的数据表。

read_buffer_cache sort_buffer_cache。这些每个客户都要要改变的缓冲区尺寸的。要改变一下就要进行测试。

系统权限表等都是使用MyISAM存储引擎。

MyISAM存储引擎配置,主要是键缓存

MyISAM键缓存值的默认值是8MB 最大可以设置为4GB.

设置一个新的键缓存

set ggobal my_cache.key_buffer_size =24M

cache index member,president in my_cache;

load index into member,president;

InnoDB存储引擎配置:

如果想让innodb为每个数据表分配一个表空间,在启动MySQL的时候,使用--innodb_file-per-table选项即可。但是那个共享表空间也必不可少,因为它要存放它的数据字典。

其中有两个最重要的配置选项:

innodb_data_home_dir 这个是为构成表空间的所有组成文件制定一个父目录。

innodn_data_file_path:是对组成表空间的文件的索命。总长度至少10MB.

例如:你想创建由两个长度为50MB构成的表空间

innodb_data_file_path=innidata1:50M;inndata2:50M

使用硬盘分区,千万不要忘记对它进行初始化的时候需要使用newraw后缀,在启动并关闭服务器后改回raw

InnoDB 表空间快被填满的征兆就是一些本应该完成的事务操作无法回滚。我们还可以使用

show table status like 'tabl_name'去查看还有多少的可用空间。

如果需要通过一个新组成文件的办法来矿大Innodb表空间,步骤:

1.关停正在运行的服务器

2.如果Innodb表空间的最后一个组成文件时可扩展的,就必须把他改变为一个固定长度文件才能把另一个文追加到它后面。

3.追到文件

4.重新启动MySQL服务器。

与Innodb相关的几个系统变量

innodb_buffer_pool_size:加大这个值可以减少因为访问Innodb数据表的数据和索引而引起的硬盘读写操作。

innodb_log_buffer_size:事务的缓冲区,当事务很大时,就需要多次把缓冲区里的信息写到硬盘上去的操作。这个默认值为1M 最大为8M.

innodb_log_grou_home_dir:为Innodb指定自己日志文件的目录,但是它值创建文件,不创建子目录。

配置Falcon存储引擎:

falcon_page_size:Falcon存储引擎使用固定的页面长度(默认值是4KB)把数据写入表空间。我们可以通过为falcon_page_size赋值的办法来选择一个页面长度。 1,2,4,8,16,32K

falcon_serial_log_dir:Falcon存储引擎将在这个变量指定的子目录里创建它的日志文件。这个变量的默认值是MySQL服务器的数据目录。

国际化和本地化

设置服务器的地理时区:主要在两个变量中

system_time_zone。

time_zone。代表着MySQL服务器的默认时区。

相对于UTC时间的,可以把一个带正负号的“小时加分钟”时间赋值给time_zone.

set session time_zone='+03:00';

选择用来显示出错信息的语言:

默认为english。在安装目录中的share/mysql。

原文地址:https://www.cnblogs.com/evencao/p/3123823.html