mysql小知识点汇总---(时间与时间戳的转换, 修改mysql用户名密码, navicate 导入sql文件报错 1153)

1. 时间与时间戳的转换

1.1 时间戳转时间

FROM_UNIXTIME(add_time, '%Y-%m-%d')

1.2 时间转时间戳

UNIX_TIMESTAMP('2015-04-29') 

2. 修改mysql用户名或者密码

2.1 修改用户名

mysql -u root -p  
Enter password:***  
mysql> use 你的数据库;  选择数据库  
Database changed  
mysql> update user set user="新的用户名" where user="原来的用户名"; 
mysql> flush privileges;    刷新权限  
mysql> exit  

2.2 修改密码

mysql -u root -p  
Enter password:***  
mysql>use 你的数据库; 
Database changed   
mysql> UPDATE user SET password=PASSWORD("新密码") WHERE user='你的用户名';  
mysql> FLUSH PRIVILEGES;  
mysql> quit;  

 3. Navicat导入数据报错-1153-Gotapacketbiggerthan'maxallowedpacket'bytes

原因:  mysql默认执行sql文件的大小最大值为16M,如果超过这个数值就会报错

解决: 修改mysql的配置文件, 如my.ini 设置 max_allowed_packet=500M(具体大小看情况而定) 

4. mysql 判断字段是否存在, 不存在则添加该字段

DROP PROCEDURE IF EXISTS schema_change; 
DELIMITER //
CREATE PROCEDURE schema_change() BEGIN 
DECLARE CurrentDatabase VARCHAR(100);
SELECT DATABASE() INTO CurrentDatabase;
IF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema=CurrentDatabase AND table_name = 'activity_log' AND column_name = 'desc') THEN 
ALTER TABLE activity_log
ADD COLUMN `desc` TINYINT NOT NULL DEFAULT 0 COMMENT '666';
END IF; 
END// 
DELIMITER ; 
CALL schema_change();

  

5. 判断索引是否存在,不存在创建

DROP PROCEDURE IF EXISTS schema_change;  
DELIMITER //
CREATE PROCEDURE schema_change() BEGIN 
DECLARE  CurrentDatabase VARCHAR(100);
SELECT DATABASE() INTO CurrentDatabase;
IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema=CurrentDatabase AND table_name = 'activity_log' AND index_name = 'log_index') THEN  
   ALTER TABLE `activity_log` ADD INDEX index_name ( `log_index` );
END IF;  
END//  
DELIMITER ;  
CALL schema_change();

 

posted @ 2018-03-08 16:42  会飞的猿  阅读(275)  评论(0编辑  收藏  举报