精华内容
下载资源
问答
  • MYSQL慢查询配置1....首先我们先查看MYSQL服务器的慢查询状态是否开启.执行如下命令:我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.开启慢查询非常简单, 操作如下:Linux下找到my...

    MYSQL慢查询配置

    1. 慢查询有什么用?

    它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化.

    2. 如何开启慢查询?

    首先我们先查看MYSQL服务器的慢查询状态是否开启.执行如下命令:

    b5e0326a3c9a824defbdbb9c33ba39df.png

    我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.

    开启慢查询非常简单, 操作如下:

    Linux下找到mysql的配置文件my.ini, 在mysqld下方加入慢查询的配置语句(注意:一定要在[mysqld]下的下方加入)

    20b695d6793a42601c0d746617f11300.png

    log-slow-queries: 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限;

    Windows下需要写绝对路径,如:log-slow-queries="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log"

    long_query_time: 最长执行时间. (如图, MSYQL将记录下所有执行时间超过2条的SQL语句, 此处为测试时间, 时间不应太小最好在5-10秒之内, 当然可以根据自己的标准而定);

    配置好以后重新启动一个MYSQL服务

    展开全文
  • 何时、怎样开启 MySql 日志? 假如你是一名 web 开发者。假设你想调试你的应用或提升其性能的话,那你须要去參考各种日志文件。日志是開始故障排除最好的选择。就著名的 MySql 数据库server而言,你...
    假如你是一名 web 开发者。假设你想调试你的应用或提升其性能的话,那你须要去參考各种日志文件。日志是開始故障排除最好的选择。就著名的 MySql 数据库server而言,你须要參考下面日志文件:
    • 错误日志:它包括了server执行时(当然也包括服务启动和停止时)所发生的错误信息
    • 普通查询日志:这是一个记录 mysqld 在做什么(连接。断开,查询)的通用日志
    • 慢查询日志:正如其名,它记录了 "慢" 的查询 SQL 语句
    本文未涉及到二进制日志。二进制日志要求非常高的server硬件配置。并且仅仅是在特定场景下(比方,主从复制,主从安装。某些数据的恢复操作)实用。

    否则的话,它就是一名实实在在的 "性能杀手"。


    关于 MySql 日志的官方文档參考 http://dev.mysql.com/doc/refman/5.7/en/server-logs.html


    通过 MySql 配置启用日志

    日志相关參数位于 [mysqld] 部分。
    编辑 MySql 配置文件:
    nano /etc/mysql/my.cnf
    以上是 Debian 下的默认安装文件夹,其它 Linux 公布版可能不太一样,这个文件里 MySql server的參数例如以下:
    # * Logging and Replication
    #
    # Both location gets rotated by the cronjob.
    # Be aware that this log type is a performance killer.
    # As of 5.1 you can enable the log at runtime!
    #general_log_file        = /var/log/mysql/mysql.log
    #general_log             = 1
    #
    # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
    #
    # Here you can see queries with especially long duration
    #log_slow_queries       = /var/log/mysql/mysql-slow.log
    #long_query_time = 2
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    # note: if you are setting up a replication slave, see README.Debian about
    #       other settings you may need to change.
    #server-id              = 1
    #log_bin                        = /var/log/mysql/mysql-bin.log
    expire_logs_days        = 10
    max_binlog_size         = 100M
    #binlog_do_db           = include_database_name
    #binlog_ignore_db       = include_database_name

    MySql 安装默认是不启用全部日志文件的(Windows 平台下的 error 日志除外)。Debian 安装 MySql 默认是将 error 日志发送给 syslog。

    error 日志

    依据 /etc/mysql/conf.d/mysqld_safe_syslog.cnf 配置,error 日志推送给 syslog:
    [mysqld_safe]
    syslog

    这是推荐的做法
    。假设你因为某种原因,不想讲 error 日志推给 syslog。将 /etc/mysql/conf.d/mysqld_safe_syslog.cnf 文件里的上述行注掉,或者直接删除掉这个文件。然后在 /etc/mysql/my.cnf 中加入下面行:
    [mysqld_safe]
    log_error=/var/log/mysql/mysql_error.log
     
    [mysqld]
    log_error=/var/log/mysql/mysql_error.log

    一般查询日志

    要启用一般查询日志,将相关行取消凝视(或者加入)就可以:
    general_log_file        = /var/log/mysql/mysql.log
    general_log             = 1

    慢查询日志

    要启用慢查询日志,将相关行取消凝视(或者加入)就可以:
    log_slow_queries       = /var/log/mysql/mysql-slow.log
    long_query_time = 2
    log-queries-not-using-indexes

    配置修改后重新启动 MySql server

    以上方法要求服务重新启动才干生效:
    service mysql restart
    或者使用 systemd

    systemctl restart mysql.service


    执行时启用日志

    MySql 5.1 之后我们能够在执行时启用或者禁用日志。
    执行时启用日志。登录 MySql client(mysql -u root -p)然后执行:
    SET GLOBAL general_log = 'ON';
    SET GLOBAL slow_query_log = 'ON';

    执行时禁用日志,登录 Mysql client(mysql -u root -p)后执行:
    SET GLOBAL general_log = 'OFF';
    SET GLOBAL slow_query_log = 'OFF';

    这样的方式适用于全部平台并且不须要重新启动服务。


    显示日志结果

    error 日志

    按以上办法设置以后,你能够通过下面命令显示 error 日志:
    tail -f /var/log/syslog
    备注:假设你没有配置 error 日志文件。MySql 将把 error 日志保存在数据文件夹(一般是 /var/lib/mysql)下的一个名为 {host_name}.err 的文件里。

    普通查询日志

    按以上办法设置以后。你能够通过使用下面命令来显示普通日志:
    tail -f /var/log/mysql/mysql.log
    备注:假设你没有配置普通日志文件。MySql 将把普通日志保存在数据文件夹(一般是 /var/lib/mysql)下的一个名为 {host_name}.log 的文件里。


    慢查询日志

    按以上办法设置以后。你能够通过使用下面命令来显示慢查询日志:
    tail -f /var/log/mysql/mysql-slow.log

    备注:假设你没有配置慢查询日志文件,MySql 将把普通日志保存在数据文件夹(一般是 /var/lib/mysql)下的一个名为 {host_name}-slow.log 的文件里。


    循环日志

    别忘了滚动日志。否则的话日志文件可能会变得非常庞大。
    Debian(以及 Debian 派生系列诸如 Ubuntu 等)系统,MySql 初始安装之后,循环日志就已经使用了 logrotate:
    nano /etc/logrotate.d/mysql-server
    对于其它 Linux 发行版。可能须要做一些修改:
    # - I put everything in one block and added sharedscripts, so that mysql gets
    #   flush-logs'd only once.
    #   Else the binary logs would automatically increase by n times every day.
    # - The error log is obsolete, messages go to syslog now.
    /var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
            daily
            rotate 7
            missingok
            create 640 mysql adm
            compress
            sharedscripts
            postrotate
                    test -x /usr/bin/mysqladmin || exit 0
                    # If this fails, check debian.conf!
                    MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
                    if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
                      # Really no mysqld or rather a missing debian-sys-maint user?
                      # If this occurs and is not a error please report a bug.
                      #if ps cax | grep -q mysqld; then
                      if killall -q -s0 -umysql mysqld; then
                        exit 1
                      fi
                    else
                      $MYADMIN flush-logs
                    fi
            endscript
    }


    检验server配置

    使用 show variables like '%log%'; 来检查server和日志文件相关的变量:
    root@cosmos ~ # mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 144332
    Server version: 5.5.31-0+wheezy1 (Debian)
     
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
     
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
     
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
    mysql> show variables like '%log%';
    +-----------------------------------------+--------------------------------+
    | Variable_name                           | Value                          |
    +-----------------------------------------+--------------------------------+
    | back_log                                | 50                             |
    | binlog_cache_size                       | 32768                          |
    | binlog_direct_non_transactional_updates | OFF                            |
    | binlog_format                           | STATEMENT                      |
    | binlog_stmt_cache_size                  | 32768                          |
    | expire_logs_days                        | 10                             |
    | general_log                             | OFF                            |
    | general_log_file                        | /var/lib/mysql/cosmos.log      |
    | innodb_flush_log_at_trx_commit          | 1                              |
    | innodb_locks_unsafe_for_binlog          | OFF                            |
    | innodb_log_buffer_size                  | 8388608                        |
    | innodb_log_file_size                    | 5242880                        |
    | innodb_log_files_in_group               | 2                              |
    | innodb_log_group_home_dir               | ./                             |
    | innodb_mirrored_log_groups              | 1                              |
    | log                                     | OFF                            |
    | log_bin                                 | OFF                            |
    | log_bin_trust_function_creators         | OFF                            |
    | log_error                               |                                |
    | log_output                              | FILE                           |
    | log_queries_not_using_indexes           | OFF                            |
    | log_slave_updates                       | OFF                            |
    | log_slow_queries                        | OFF                            |
    | log_warnings                            | 1                              |
    | max_binlog_cache_size                   | 18446744073709547520           |
    | max_binlog_size                         | 104857600                      |
    | max_binlog_stmt_cache_size              | 18446744073709547520           |
    | max_relay_log_size                      | 0                              |
    | relay_log                               |                                |
    | relay_log_index                         |                                |
    | relay_log_info_file                     | relay-log.info                 |
    | relay_log_purge                         | ON                             |
    | relay_log_recovery                      | OFF                            |
    | relay_log_space_limit                   | 0                              |
    | slow_query_log                          | OFF                            |
    | slow_query_log_file                     | /var/lib/mysql/cosmos-slow.log |
    | sql_log_bin                             | ON                             |
    | sql_log_off                             | OFF                            |
    | sync_binlog                             | 0                              |
    | sync_relay_log                          | 0                              |
    | sync_relay_log_info                     | 0                              |
    +-----------------------------------------+--------------------------------+
    41 rows in set (0.00 sec)

    server变量相关官方文档參考 http://dev.mysql.com/doc/refman/5.7/en/server-options.html


    何时启用日志

    MySql 默认安装的话,全部的日志文件都不会被启用的(除了 Windows 平台上的 error 日志)。Debian 上安装默认将 error 日志发给 syslog。
    实际上,在非常多情况下日志文件都能够提供关键问题的解决的方法:
    • 总是启用 error 日志
    • 在这些情况下开启普通查询日志(最好在执行时):检查你的应用是否正确处理了 MySql 数据库连接(一个常见的错误就是从一个单一脚本多次连接到 MySql);监控来自你的应用的查询的执行情况;測试 memcached(或者相似的软件),检查某查询是被 db 执行还是被 memcached 处理
    • 当你的应用因为某些原因造成性能下降而你想找到这些慢查询时。启用慢查询日志(MySql 最好是在短期内这样配置,比方 2-3 天)


    演示样例

    下面是一个 MySql 普通日志的演示样例:
    131021 17:43:50    43 Connect root@localhost as anonymous on pnet_blog
           43 Init DB pnet_blog
           43 Query SELECT count(id) as total_posts FROM posts WHERE date_published is not null AND date_published <= '20131021144350'
           43 Query SELECT * FROM posts WHERE date_published is not null AND date_published <= '20131021144350' ORDER BY date_published DESC LIMIT 0,10
           44 Connect root@localhost as anonymous on pnet_blog
           44 Query SELECT id, title, impressions FROM tips WHERE date_published IS NOT NULL AND date_published <= '20131021144350' ORDER BY date_published DESC LIMIT 0, 10
           44 Quit
           43 Quit
    131021 17:44:28    45 Connect root@localhost as anonymous on pnet_blog
           45 Init DB pnet_blog
           45 Query SELECT * FROM posts WHERE url='how-and-when-to-enable-mysql-logs'
           45 Query UPDATE posts SET impressions=impressions+1 WHERE id='41'
           45 Query SELECT url, post_title FROM posts WHERE date_published IS NOT NULL AND date_published < '20131020150000' ORDER BY date_published DESC LIMIT 0,1
           45 Query SELECT url, post_title FROM posts WHERE date_published IS NOT NULL AND date_published > '20131020150000' ORDER BY date_published ASC LIMIT 0,1
           45 Query SELECT * FROM posts WHERE date_published is not null AND date_published <= '20131021144428' AND date_published >= '20130421144428' ORDER BY impressions DESC LIMIT 0,10
           46 Connect root@localhost as anonymous on pnet_blog
           46 Query SELECT id, title, impressions FROM tips WHERE date_published IS NOT NULL AND date_published <= '20131021144428' ORDER BY date_published DESC LIMIT 0, 10
           46 Quit
           45 Quit  
        
    原文链接:http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

    posted on 2017-07-08 21:18 mthoutai 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/mthoutai/p/7138050.html

    展开全文
  • 您可能感兴趣的话题:Mysql核心提示: Mysql是一个多线程的,结构化查询语言(SQL)数据库服务器。...下载地址:开启 MySQL 的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止 3306 端口。...

    您可能感兴趣的话题:

    Mysql

    核心提示:  Mysql是一个多线程的,结构化查询语言(SQL)数据库服务器。

    Mysql是一个多线程的,结构化查询语言(SQL)数据库服务器。SQL 在世界上是最流行的数据库语言。MySQL 的执行性能非常高,运行速度非常快,并非常容易使用。是一个非常捧的数据库。

    下载地址:

    开启 MySQL 的远程登陆帐号有两大步:

    1、确定服务器上的防火墙没有阻止 3306 端口。

    MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

    如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

    如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。

    2、增加允许远程连接 MySQL 用户并授权。

    1)首先以 root 帐户登陆 MySQL

    在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。

    在 Linux 主机中在命令提示行下输入下面的命令。

    > MySQL -uroot -p123456

    123456 为 root 用户的密码。

    2)创建远程登陆用户并授权

    > grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';

    上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。

    下面逐一分析所有的参数:

    all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:        select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

    discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。

    ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

    123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

    123456 为用户的密码。

    执行了上面的语句后,再执行下面的语句,方可立即生效。

    > flush privileges;

    展开全文
  • 在一台机器上,怎样开启两个mysql服务在一台机器上运行两个mysql服务,对应两个数据库,应该怎样操作?最佳答案7月26日 10:36 有些情况下你可能想要在同一台机器上运行多个服务器。例如,你可能想要测试一个新的...

    在一台机器上,怎样开启两个mysql服务

    在一台机器上运行两个mysql服务,对应两个数据库,应该怎样操作?
    最佳答案
    7月26日 10:36 有些情况下你可能想要在同一台机器上运行多个服务器。例如,你可能想要测试一个新的MySQL版本而让你现有生产系统的设置不受到干扰,或你可能是想要为不同的客户提供独立的MySQL安装一个因特网服务供应商。

    如果你想要运行多个服务器,最容易的方法是用不同的TCP/IP端口和套接字文件重新编译服务器,因此他们不是侦听同一个TCP/IP端口或套接字。

    假设一个现存服务器配置为缺省端口号和套接字文件,那么用一个这样的configure命令行设置新的服务器:

    shell> ./configure --with-tcp-port=port_number /
    --with-unix-socket=file_name /
    --prefix=/usr/local/mysql-3.22.9

    这里port_number和file_name应该不同于缺省端口号和套接字文件路径名,而且--prefix值应该指定一个不同于现存的MySQL安装所在的安装目录。

    你可以用这个命令检查由任何当前执行的MySQL所使用的套接字和端口:

    shell> mysqladmin -h hostname --port=port_number variables

    如果你有一个MySQL服务器正运行在你使用了的端口上,你将得到MySQL的一些最重要的可配置变量的一张表,包括套接字名等。

    你也应该编辑你机器的初始化脚本(可能是“mysql.server”)来启动并杀死多个mysqld服务器。

    你不必重新编译一个新MySQL服务器,只要以一个不同的端口和套接字启动即可。你可以通过指定在运行时safe_mysqld使用的选项来改变端口和套接字:

    shell> /path/to/safe_mysqld --socket=file_name --port=port_number

    如果你在与开启日志的另一个服务器相同的一个数据库目录下运行新服务器,你也应该用safe_mysqld的--log和--log-update选项来指定日志文件的名字,否则,两个服务器可能正在试图写入同一个日志文件。

    警告:通常你决不应该有在同一个数据库中更新数据的2个服务器!如果你的OS不支持无故障(fault-free)的系统锁定,这可能导致令人惊讶的事情发生!

    如果你想要为第二个服务器使用另一个数据库目录,你可以使用safe_mysqld的--datadir=path选项。

    展开全文
  • 怎么在一台机器上开启多个mysql服务?...有两种方式可以开启mysql服务。第一种是windows服务方式cmd下执行: cd 目录 -》mysqld-nt --install mysql2 --defaults-file="配置文件全路径"。要删除服务执行:
  • 当我们需要在本地直接访问远程Linux服务器中网站的数据库时,一般时没有办法直接访问的,那么怎样才能在linux中开源mysql远程连接服务呢首先我们需要在GRANT命令创建远程连接mysql授权用户rootmysql -u root -pmysql...
  • 记录一下转自:centos 6.8启动mysql CentOS7和CentOS6怎样开启MySQL远程访问1.开放mysql访问端口3306修改防火墙配置文件vi /etc/sysconfig/iptables加入端口配置-A INPUT -m state --state NEW -m tcp -p tcp --...
  • 开启 MySQL 的远程登陆帐号有两大步:1、...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。2、增加允...
  • 在Linux服务器上安装了msyql数据库,在本地访问的时候可以访问,但是我想通过远程的方式访问的...前言学习MySQL重新整理以前非MK的记载描述没有开启的话连接数据库报错:2003-can't connect to MYSQL方法/步骤•第...
  • 解决MySQL不允许从远程访问的方法开启 MySQL 的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止 3306 端口。MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口...
  • 开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员
  • ...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。 2、增加允许远程连...
  • 开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的防火墙没有...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向...
  • 如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。 2、增加允许远程连接 MySQL 用户并授权 1)首先以 ...
  • 开启 MySQL 的远程登陆帐号有两大步: ...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员
  • MySQL开启远程连接

    2016-06-16 23:14:00
    开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的防火墙...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙,请向您的服...
  • 开启MySQL的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止3306端口。MySQL默认的端口是3306,需要确定防火墙没有阻止3306端口,否则远程是无法通过3306端口连接到MySQL的。如果您在安装MySQL时指定了其他...
  • 解决MySQL不允许从远程访问的方法   开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的防火墙...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样...
  • 开启MySQL的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止3306端口。MySQL默认的端口是3306,需要确定防火墙没有阻止3306端口,否则远程是无法通过3306端口连接到MySQL的。如果您在安装MySQL时指定了其他...
  • 开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的防火墙没有阻止 3306 ...如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。 如果不知道怎样设置您的服务器上的防火墙...

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

怎样开启mysql服务

mysql 订阅