• 技术文章

    mysql 配置优化

    感觉这篇文章比较靠谱 收藏,经常会说优化 ,基本从三个方面,配置优化、设计优化、使用优化。这个文章从配置 方面来说不错 转自:http://www.itokit.com/2013/0412/74892.html 定运行了一段时间后运行,根据服务器的“状态”进行优化。 mysql> show global status; 可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like ‘查询值%’; 一、慢查询 mysql> show variables like ‘%slow%’; +——————+——-+ | Variable_name | Value | +——————+——-+ | log_slow_queries | ON | | slow_launch_time | 2     | +——————+——-+ mysql> show global status like ‘%slow%’; +———————+——-+ | Variable_name    | Value | +———————+——-+ | Slow_launch_threads | 0     | | Slow_queries        | 4148 | +———————+——-+ 打开慢查询日志可能会对系统性能有一点点影响,如果你的MySQL是主-从结构,可以考虑打开其中一台从服务器的慢查询日志,这样既可以监控慢查询,对系统性能影响又小,另mysql有自带的命令mysqldumpslow可进行查询,例下列命令可以查出访问次数最多的20个sql语句mysqldumpslow -s c -t 20 host-slow.log 二、连接数 经常会遇见”MySQL: ERROR 1040: Too manyconnections”的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小: mysql> show variables like ‘max_connections’; +—————–+——-+ | Variable_name | Value | +—————–+——-+ | max_connections | 256 | +—————–+——-+ 这台MySQL服务器最大连接数是256,然后查询一下服务器响应的最大连接数: mysql> show global status like ‘Max_used_connections’; +———————-+——-+ | Variable_name        | Value | +———————-+——-+ | Max_used_connections | 245…

  • 技术文章

    mysql 时间函数

    [well] 在工作中遇到sql语句时间对比问题,查了好多时间函数,正好总结一下: 1, ADDDAYE (expr,days) expr, days为整数值DATE_ADD()为相同功能函数,ADDTIME(expr,expr2)为增加 h,i,s SELECT ADDDATE(‘1998-01-02’, 31); -> ‘1998-02-02’ 2,CURDATE() 返回当前日期 具体格式根据函数用在字符串或是数字语境中而定 mysql> SELECT CURDATE(); -> ‘1997-12-15’ mysql> SELECT CURDATE() + 0; -> 19971215 3,CURTIME()  将当前时间以’HH:MM:SS’或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定 4,DATE(expr) 提取日期或时间日期表达式expr中的日期部分。 mysql> SELECT DATE(‘2003-12-31 01:02:03’); -> ‘2003-12-31’ 5,DATEDIFF(expr,expr2) DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。 mysql> SELECT DATEDIFF(‘1997-12-31 23:59:59′,’1997-12-30’); -> 1 mysql> SELECT DATEDIFF(‘1997-11-30 23:59:59′,’1997-12-31’); -> -31 6,DATE_FORMAT(date,format) 根据format 字符串安排date 值的格式。 但是传字段参数时不是很好用,特别是int类型转换成null,而from_unixtime是OK的 以下说明符可用在 format 字符串中: 说明符 说明 %a 工作日的缩写名称  (Sun..Sat) %b 月份的缩写名称  (Jan..Dec) %c 月份,数字形式(0..12) %D 带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, …) %d 该月日期, 数字形式 (00..31) %e 该月日期, 数字形式(0..31) %f 微秒 (000000..999999) %H 小时(00..23) %h 小时(01..12) %I 小时 (01..12) %i 分钟,数字形式 (00..59) %j 一年中的天数 (001..366) %k 小时 (0..23) %l 小时 (1..12) %M…

  • 技术文章

    ubuntu 源码安装mysql5.6 ,php5.58

    一、mysql安装 进入源码包 [well] 执行以下命令,如果没有cmake sudo apt-get install cmake cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  //安装目录 -DMYSQL_DATADIR=/usr/local/mysql/data \ //数据存放目录 -DDEFAULT_CHARSET=utf8 \ //字符设置 -DDEFAULT_COLLATION=utf8_general_ci \ //校验字符 -DEXTRA_CHARSETS=all \ //安装所有扩展字符集 -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据 sudo make & make install 若安装过程有如下错误 Curses library not found.  Please install appropriate package, 使用命令: sudo apt-get install libncurses5-dev 初始化mysql表 /usr/local/mysql/scripts$ sudo ./mysql_install_db -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql 起动 sudo /usr/local/mysql/bin/mysqld_safe 查看进程信息 ps -aux | grep mysql 起动成功 修改root密码 /usr/local/mysql/bin/# ./mysql -uroot -p 回车,进入mysql mysql> update user set Password = password('xxxxxx') where User='root'; select * from user where user = 'root'; flush privileges; //刷新表权限 可以使用webmin来管理linux服务器 二、php源码安装 sudo tar -xvf php-5.5.8.tar.gz  sudo ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql 有libxml错误 sudo apt-get install libxml2-dev 源码安装时要用 ./configure –prefix=/alidata/server/php –with-mysql=/alidata/server/mysql…

Free Web Hosting