存档

‘MySQL’ 分类的存档

MySQL帐户创建与删除、口令更改

2011年12月5日 一棵葱 没有评论

1. 创建用户账户

可以用三种方式创建MySQL账户:
1 使用GRANT语句

2 直接操作MySQL授权表

3 使用CREATE USER语句

最好的方法是使用GRANT语句,因为这样更精确,错误少。

创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。

下面的示例说明如何使用MySQL客户端程序来设置新用户。为了更改,你必须以MySQL root用户连接MySQL服务器,并且root账户必须有mysql数据库的INSERT权限和RELOAD管理权限。

首先,使用MySQL程序以MySQL root用户来连接服务器:

MySQL --user=root MySQL

如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供–password或-p选项。
阅读全文…

分类: MySQL 标签: , ,

关于Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

2011年11月15日 一棵葱 没有评论

连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
另一个解决办法是你现在不能用套接字建立连接因为它不见了,你可以建立一个TCP/IP连接,例如,如果服务器主机是192.168.0.1,你可以这样连接:

  %mysql   -u   root   -h   192.168.0.1   -p
  %mysqladmin   -u   root   -h   192.168.0.1   -p   shutdown

如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个 不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/my.cnf中,将套接字文件移到那里:

  [mysqld]
  socket=/usr/local/var/mysql.sock
  [client]
  socket=/usr/local/var/mysql.sock

对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字
阅读全文…

分类: MySQL 标签:

CentOS 6.0上源码编译安装mysql 5.5.17

2011年11月11日 一棵葱 没有评论

1.安装相关库文件

yum install bison gcc gcc-c++ make autoconf automake ncurses-devel

2.安装cmake
从mysql 5.5开始,mysql源码安装开始使用cmake。使用cmake安装与configure有所不同。如果要使用源码编译安装mysql5.5,首先需要安装cmake。

wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
tar zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6/
./configure
gmake
gmake install

阅读全文…

分类: CentOS, MySQL 标签: , , ,

linux下mysql慢查询开启及分析

2011年10月12日 一棵葱 没有评论

一、开启mysql的慢查询

方法1,用命令开启慢查询

    mysql> show variables like "%long%";         //查看一下默认为慢查询的时间10秒
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.00 sec)  

    mysql> set global long_query_time=2;          //设置成2秒,加上global,下次进mysql已然生效
    Query OK, 0 rows affected (0.00 sec)  

    mysql> show variables like "%slow%";          //查看一下慢查询是不是已经开启
    +---------------------+---------------------------------+
    | Variable_name       | Value                           |
    +---------------------+---------------------------------+
    | log_slow_queries    | OFF                             |
    | slow_launch_time    | 2                               |
    | slow_query_log      | OFF                             |
    | slow_query_log_file | /usr/local/mysql/mysql-slow.log |
    +---------------------+---------------------------------+
    4 rows in set (0.00 sec)
    mysql> set slow_query_log='ON';                        //加上global,不然会报错的。
    ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL
    mysql> set global slow_query_log='ON';            //启用慢查询
    Query OK, 0 rows affected (0.28 sec)  

    mysql> show variables like "%slow%";              //查看是否已经开启
    +---------------------+---------------------------------+
    | Variable_name       | Value                           |
    +---------------------+---------------------------------+
    | log_slow_queries    | ON                              |
    | slow_launch_time    | 2                               |
    | slow_query_log      | ON                              |
    | slow_query_log_file | /usr/local/mysql/mysql-slow.log |
    +---------------------+---------------------------------+
    4 rows in set (0.00 sec)

阅读全文…

从MySQL的ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104学到的

2011年8月30日 一棵葱 没有评论

今天有同事告诉我,有个系统页面出现了以下问题:ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104,没遇到过这个问题,google一下吧。

以下是从往上摘录的

方法一:
最近遇到一个比较少见的问题,php连接mySQL的时候,会报错
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
这种现象还不是不断重复的,出现的频率不确定,疑似mySQL数据丢包。google之后,得到解决办法,通过修改my.cnf
1. 注释掉 # skip-networking
2. 给MYSQL绑定IP bind-address = 123.88.88.88 # server IP address
参考:http://blog.csdn.net/yfgcq/archive/2010/01/25/5254427.aspx

方法二:
当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104 。
如果是在linux shell命令行中直接打 mysql 命令,能够顺利连上 MySQL,执行查询语句也比较正常,但如果执行 STOP SLAVE; 命令时就随机出现 ERROR 2013 (HY000): Lost connection to MySQL server during query 问题。而如果把操作命令写到脚本文件再去执行该脚本文件的话,则必然出现 Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
要是无论通过什么途径远程访问都出现错误可以认为是系统有防火墙之类的限制,但现在这种奇怪的抽筋现象让人百思不得其解。最后找到的解决方法是在 my.cnf 里面的 [mysqld] 段增加一个启动参数
skip-name-resolve
问题消失。
阅读全文…

分类: MySQL 标签: ,