关于MySQL的init-file选项的用法实例51CTO博客 - 娱乐之横扫全球

关于MySQL的init-file选项的用法实例51CTO博客

2019年04月23日09时45分04秒 | 作者: 笑容 | 标签: 简略,时刻,比方 | 浏览: 399

这段时刻赋闲中,刚好在家有大把的时刻学习ORACLE和MySQL.趁便也把PHP捡起来。逛逛论坛。
今日论坛上有人问起,刚好写个比方,贴上来。^_^
init-file 是在MySQL发动的时分加载的脚本。
有两个要注意的。
1. 保证你的mysqld 编译的时分没有加  disable-grant-options 开关。
2. 保证init-file指定的脚本每行一个详细的句子。

使用方法很简略,直接增加到配置文件,比方my.cnf.
增加:
[server] 或许 [mysqld] 或许 [mysqld_safe]
init-file="Your file location"
重启mysqld 就可以看到作用了。
我来做个简略的比方。使用init-file来生成一个CACHE表的数据。
环境: Vbox 虚拟机 Ubuntu 32Bit, MySQL 5.1.30, 发动脚本/home/david/script/control_db
root@david-desktop:/var/log/mysql# /home/david/scripts/control_db enter
Enter password:
... mysql> use ytt;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> create table ytt_test ( id int unsigned not null, suffix tinyint unsigned not null, primary key(id,suffix));
Query OK, 0 rows affected (0.00 sec) mysql> insert into ytt_test (id,suffix) values (1,10),(1,20),(1,50),(1,52),(2,55),(2,1),(2,30),
    ->(2,80),(3,100),(3,22),(3,4),(4,50),(4,20),(4,2),(5,10),(5,90);

Query OK, 16 rows affected (0.00 sec)
Records: 16  Duplicates: 0  Warnings: 0 简略的CACHE表。
mysql> create table ytt_test_heap engine memory select * from ytt_test where 0;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
使命便是取到每个分组的最大值。
mysql> select a.* from ytt_test as a where suffix = (select max(suffix) from ytt_test where id = a.id);
+++
| id | suffix |
+++
|  1 |     52 |
|  2 |     80 |
|  3 |    100 |
|  4 |     50 |
|  5 |     90 |
+++
5 rows in set (0.02 sec) 然后放到CACHE表中。关于SQL句子优化方面我别的会写的。现在时刻多啊。
现在搞init-file 加如下部分到my.cnf
[server]
init-file=/home/david/i.e/init.file

文件/home/david/i.e/init.file 内容很简略,如下:
use ytt;
insert into ytt_test_heap select a.* from ytt_test as a where suffix = (select max(suffix) from ytt_test where id = a.id);
给相应的权限。
root@david-desktop:/var/log/mysql# chown -R mysql.mysql /home/david/i.e/init.file
root@david-desktop:/var/log/mysql# chmod 0660 /home/david/i.e/init.file 然后重启 mysqld. root@david-desktop:/var/log/mysql# /home/david/scripts/control_db stop
root@david-desktop:/var/log/mysql# /home/david/scripts/control_db start
root@david-desktop:/var/log/mysql# /home/david/scripts/control_db enter
Enter password:
...
mysql> select * from ytt_test_heap;
+++
| id | suffix |
+++
|  1 |     52 |
|  2 |     80 |
|  3 |    100 |
|  4 |     50 |
|  5 |     90 |
+++
5 rows in set (0.00 sec) 看到作用了吧。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1
  • 2
  • 3

    sysbench对mysql压力测验ITeye

    测验,线程,基准
  • 4

    Sql Server数据库跨库查询ITeye

    数据库,树立,链接
  • 5

    PowerDesigner 15 设置identityITeye

    规划,数据库,编码
  • 6

    [MySQL]ITeye

    一个,或许,这个
  • 7

    hdfs常用命令ITeye

    文件,目录,途径
  • 8

    orace11gR2 启用日志归档ITeye

    备份,数据库,需求
  • 9

    Mysql高可用架构ITeye

    可用,架构,计划
  • 10

    hbase 全体介绍ITeye

    存储,经过,文章