正在加载...
分页: 4/12 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

mysql找回忘记的root密码

[ 2010/03/05 17:24 | by selboo ]
Windows
1、停止mysql服务:打开命令行窗口CMD,net stop mysql

2、用另外一种方式启动Mysql:在命令行进入到mysql的安装路径下的bin目录下使用mysqld-nt.exe启动:mysqld-nt --skip-grant-tables 注意:此时CMD窗口不能关闭。

3、进入Mysql:另外打开一个命入令行窗口,在bin目录下执行mysql,此时无需输入密码即可进入。
>use mysql
>update user set password=password("new_pass")
Tags: ,

mysql 5.0存储过程学习

[ 2010/02/11 15:45 | by selboo ]

  


mysql 5.0存储过程学习总结



一.创建存储过程


1.基本语法:


MySQL Show命令

[ 2010/02/10 10:27 | by selboo ]
权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwor';

查看mysql 存储过程
show procedure status;

show tables或show tables from database_name;
解释:显示当前数据库中所有表的名称

show databases;
解释:显示mysql中所有数据库的名称

show processlist;
解释:显示系统中正在运行的所有
Tags: ,

Mysql对large page的支持

[ 2010/01/25 11:16 | by selboo ]
    在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TLB Miss 和缺页中断,从而大大影响应用程序的性能。当操作系统以 2MB 甚至更大作为分页的单位时,将会大大减少 TLB Miss 和缺页中断的数量,显著提高应用程序的性能。这也正是 Linux 内核引入大页面支持的直接原因。好处是很明显的,假设应用程序需要 2MB 的内存,如果操作系统以 4KB 作为分页的单位,则需要 512 个页面,进而在 TLB 中需要 512 个表项,同时也需要 512 个页表项,操作系统需要经历至少 512 次 TLB Miss 和 512 次缺页中断才能将 2MB 应用程序空间全部映射到物理内存;然而,当操作系统采用 2MB 作为分页的基本单位时,只需要一次 TLB Miss 和一次缺页中断,就可以为 2MB 的应用程序空间建立虚实映射,并在运行过程中无需再经历 TLB Miss 和缺页中断(假设未发生 TLB 项替换和 Swap)。
为了能以最小的代价实现大页面支持,Linux 操作系统采用了基于 hugetlbfs 特殊文件系统 2M 字节大页面支持。这种采用特殊文件系统形式支持大页面的方式,使得应用程序可以根据需要灵活地选择虚存页面大小,而不会被强制使用 2MB 大页面。

在mysql中,innodb可以使用large pages来分配buffer pool跟additional memory pool.
下面来看下mysql使用large pages具体的实现方法

1:查看系统是否支持huge-pages
cat /proc/meminfo | grep -i huge
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugepagesize有值,说明系统支持large pages(如不支持,系统需要重新编译来支持)

2:配置
把配置写入到/etc/sysctl.conf 然后sysctl -p使其生效
vm.nr_hugepages=200 (大页面的页数)
vm.hugetlb_shm_group=1001(需要使用大页面的用户id 可用id mysql 来查看mysql的ID)
kernel.shmmax=536887296
#kernel.shmall=524288

3:如需使mysql使用large pages,还需设置max locked-in-memory的大小
用ulimit -a(或者ulimit -l)来查看 max locked memory       (kbytes, -l) 32
vim /etc/security/limits.conf
mysql            soft    memlock      3145728
mysql            hard    memlock      3145728
或者用ulimit -l 3145728来设置,

4:vim /etc/mysql/my.cnf
添加large-pages,使得mysql 支持large-pages

5:启动mysql。
在启动mysql的时候,最容易报的错误是:
InnoDB: HugeTLB: Warning: Failed to allocate 138412032 bytes. errno 12
InnoDB HugeTLB: Warning: Using conventional memory pool
这是由于上面配置的两点所致。
1)nr_hugepages 的值*2M应大于(innodb_buffer_pool_size+innodb_additional_mem_pool_size)因为以上谈到innodb可以使用large pages来分配buffer pool跟additional memory pool.
2)memlock 的设置,在启动mysql时,一定要先查看用ulimit -a 来查看max locked memory 设置是否合理,可以尝试用以上两种方法来设置该值。还有一点,/etc/security/limits.conf配置文件的修改,可能无法通过ssh来查看,故也不能用ssh来启动mysql。
Tags:
     作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com

         我们知道Innodb的数据页是16K,而且是一个硬性的规定,系统里没更改的办法,希望将来MySQL也能也Oracle一样支持多种数据页的大小。
但实际应用中有时16K显的有点大了,特别是很多业务在Oracle或是SQL SERVER运行的挺好的情况下迁到了MySQL上发现IO增长太明显的情况下,
就会想到更改数据页大小了。
  实际上innodb的数据页大小也是可以更改的,只是需要在源码层去更改,然后重新rebuild一下MySQL.
    更改办法:
    (以MySQL-5.1.38源码为例)
    位置在storage/innobase/include/univ.i ,在univ.i中查找:UNIV_PAGE_SIZE

/*
   DATABASE VERSION CONTROL
   ========================
*/

/* The universal page size of the database */
#define UNIV_PAGE_SIZE          (2 * 8192) /* NOTE! Currently, this has to be a
     power of 2 */
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT 14

/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM 32


   UNIV_PAGE_SIZE就是数据页大小,默认的是16K. 后面的备注里标明,该值是可以设置必须为2的次方。对于该值可以设置成4k,8k,16k,32K,64K,在大也没意义了。
同时更改了UNIV_PAGE_SIZE后需要更改 UNIV_PAGE_SIZE_SHIFT 该值是2的多少次方为UNIV_PAGE_SIZE,所以设置数据页分别情况如下:

#define UNIV_PAGE_SIZE_SHIFT 12  if UNIV_PAGE_SIZ=4K
#define UNIV_PAGE_SIZE_SHIFT 13  if UNIV_PAGE_SIZ=8K
#define UNIV_PAGE_SIZE_SHIFT 15  if UNIV_PAGE_SIZ=32K


例子:
 更改innodb的数据页为8K,相应修改为:

/*
   DATABASE VERSION CONTROL
   ========================
*/

/* The universal page size of the database */
#define UNIV_PAGE_SIZE          8192   /* NOTE! Currently, this has to be a
     power of 2 */
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT 13

/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM 32


重新编译,然后测试测试,再测试。Good luck!
=====================================
mysql.5.0.88 在 innobase/include/univ.i

测试插入2000W 条数据的

修改前
    1.   Query OK, 1 row affected (23 min 41.56 sec)
    2.   Query OK, 1 row affected (23 min 52.65 sec)

修改后
    3.   Query OK, 1 row affected (14 min 14.90 sec)
    4.   Query OK, 1 row affected (14 min 23.79 sec)
Tags: ,
分页: 4/12 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]