mysql指定路径启动

邮差的信 提交于 2020-01-16 15:04:12

 

创建Event

参考:

mysql如何让一个存储过程定时执行:http://www.myexception.cn/mysql/827875.html   ,  http://www.jb51.net/article/38319.htm

 

DELIMITER // 
CREATE PROCEDURE updateLoginToken () 
BEGIN 
update logintoken t SET t.`tokenExpiredTime` = DATE_ADD(now(),INTERVAL 1 DAY) WHERE UNIX_TIMESTAMP(t.tokenExpiredTime) < UNIX_TIMESTAMP(now()) and t.loginName = '19000000004'; 
END
// 
DELIMITER ; 
CREATE EVENT if not exists updateLoginTokenEvent 
on schedule every 30 second 
on completion preserve 
do call updateLoginToken();

 以上定义了一个  updateLoginToken  procedure 和一个 updateLoginTokenEvent  Event

 

执行evnet

mysql怎么让一个存储过程定时执行
查看event是否开启: show variables like '%sche%'; 

将事件计划开启: set global event_scheduler=1;  
关闭事件任务: alter event updateLoginTokenEvent   ON COMPLETION PRESERVE DISABLE; 
开户事件任务: alter event updateLoginTokenEvent  ON COMPLETION PRESERVE ENABLE; 

 

查看event_scheduler是否开启:SHOW VARIABLES LIKE 'event_scheduler';如果为disabled,则需要在客户端执行set global event_scheduler=1;  

如果提示 the mysql server is running white  --event-scheduler=dsiabled or --skip-grant-tables  错误,

则需要需改 /etc/my.cnf or /etc/mysql/my.cnf 

配置mysql 

查看当前mysqld启动时的加载文件:http://www.cnblogs.com/mangu-uu/p/4162984.html

通常可以用下面的命令找到答案

server ~ # ps ax | grep '[m]ysqld'
10801 ?        Ssl    0:27 /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/usr --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock

 

更高级一些,根据进程的文件信息来查看

server ~ # cat /proc/$(pidof mysqld)/cmdline | tr '\0' '\n'
/usr/sbin/mysqld
--defaults-file=/etc/mysql/my.cnf

 

使用mysqld自带的 --verbose功能

server ~ # /usr/sbin/mysqld --help --verbose --skip-networking --pid-file=$(tempfile) 2> /dev/null | grep -A1 'Default options are read'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

 

mysql指定路径启动 转:http://www.cnblogs.com/mangu-uu/p/4162984.html

/usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/usr --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock<br><br><br>以下内容转:<br>http://chengxuyuan.naxieshir.com/fenlei/2/p/152.html

 

绝大多数的mysql在启动的时候都要加载一个配置文件,相信大多数的开发都碰到过类似问题,机器启动时mysql默认都会启动,默认使用mysql命令可以连上服务端,但是数据存储在什么地方,参数设置的是多少等等,这个就需要知道mysql使用的是哪个配置文件,那么mysql启动是按照什么顺序来加载配置文件的呢?

 

不同版本的机器加载的顺序也不一样,下面的列子是以5.1.10为例。

Linux机器下常用的配置文件路径

文件名作用
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options (as of MySQL 5.1.15)
SYSCONFDIR/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options
defaults-extra-file The file specified with--defaults-extra-file=path  
~/my.cnf User-specific options

 

在没有添加任何启动命令的时候,mysql会默认的依次从上到下检查配置文件是否存在,使用第一个发现的文件作为启动文件。

 

因此在启动mysqld的时候,一定要确定好上述的路径下是否有对应的配置文件,避免加载了错误的文件,导致一些奇怪的问题。

 

当然,如果不想使用默认加载顺序中的配置文件,可以在启动命令上增加 --defaults-file='path/to/my.cnf'来指定要使用的配置文件

 

ubuntu下修改MySQL的配置文件my.cnf:  http://blog.csdn.net/xun_2008/article/details/7032897

sudo chmod 755 my.cnf

禁止掉skip-grant-tables

 

解决Warning: World-writable config file '/etc/mysql/my.cnf' is ignored  参考:http://blog.csdn.net/xeay123/article/details/44127951

 

‘/etc/my.cnf’ is ignored ,大概意思是权限全局可写,任何一个用户都可以写。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。导致无法进入,这也是mysql的安全机制之一。所以我们必须得改一些权限。设置其他用户不可写。

shell如下

chmod 644 /etc/my.cnf

然后执行即可

 

最终updateLoginTokenEvent执行效果

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!