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();