Table of Contents
Mysql Upgrade Issue
Easy Command List
How to check Type of Table
You can use any of the following command to determine table type.
SHOW TABLE STATUS WHERE Name = 'table_name'; OR SHOW CREATE TABLE 'table_name'; OR SHOW TABLE STATUS;
Mysql Generate hash for password
MySQL Cluster information gathering
How to find which master log slave reading
cat slaves | while READ i ; do echo $i; mysql -h$i -e "SHOW SLAVE STATUS \G" | grep "Relay_Master_Log_File"; done
How continue with the next statement in the replication
NOTE : Make sure you run the query manually on slave if it is query issue.
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
Issue / Solutions
 appeared after upgrade
This issue is appeared due to the default character set.
As Both version of database diff. character set.
To get rid of that character try to following steps.
1. insert following line to your my.cnf set-variable=character-set-server=UTF8 2. re-import database should fix the issue.
mysqldump does not save stored procedure / functions / triggers.
By default mysqldump only store triggers not procedures/functions.
In order to include to your mysqldump there is switch
-R, –routines Dump stored routines (functions and procedures).
In order to include triggers to your mysqldump there is switch
–triggers Dump triggers for each dumped table
mysqldump -R -u <username> -p<password> <database>
After upgrade from 4.0 to 4.1 see issue on charset
Use following line in your my.cnf will resolve the issue. as latin1 is default character set in 4.0 and 4.1 has utf8
- | my.cnf
set-variable=character-set-server=latin1
General Log
It log each and every query.
You can enable it in TABLE or FILE.
Following method shows how to enable it in table without restarting,
Also same you can apply in my.cnf
Structure usually created with mysql installation if you don't see could be old structure.
try running mysql_upgrade
- | Table Structure
CREATE TABLE `general_log` ( `event_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext, `thread_id` INT(11) DEFAULT NULL, `server_id` INT(11) DEFAULT NULL, `command_type` VARCHAR(64) DEFAULT NULL, `argument` mediumtext) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
You can choose log_output to be file OR table OR both.
- | Variable
general_log=1 log_output=TABLE,FILE
Following command can help you apply changes without restart.
- | Command
SET GLOBAL log_output='TABLE'; SET GLOBAL general_log='ON';
How to flush log.
- | Flush log
mysql -u root -pp4ssw0rd -e "TRUNCATE TABLE mysql.general_log"
mysql dump only partition information
If you were planning to drop a partition, you may need to back it up. find out the range of the partition by
show create table tablename
replace the range fields as follows:
mysqldump -S --no-create-info --where="RANGE(day) >= lowrange AND RANGE(day) < highrange" database_name table_name > /jtmp/table.sql
Reading Binlog
Simple command to read binlog is
mysqlbinlog mysql-bin.000013
You can use following regularly used options.
--start-datetime= --start-position= --server-id=
Can't open file
I've started seeing following error in my log.
[ERROR] /usr/libexec/mysqld: Can't open file:
It is caused by file discriptor limit set by the system.
You can check that by changing your shell to mysql user and running following command.
ulimit -a
In order to increase the open file limit.
edit following file.
- /etc/security/limits.conf
mysql soft nofile 49152 mysql hard nofile 65536
Now you can check mysql for limit seen by mysql.
login to mysql as root and run following command.
show GLOBAL VARIABLES LIKE "open%";
Now you can modify it to increased limit in limits.conf.
by editing following file.
- /etc/my.cnf
[mysqld] open-files-limit=49152 [mysqld_safe] open-files-limit=49152
restart mysql and check again it should represent new value.
InnoDB: Unable to lock ./ibdata1, error: 11
I've stumble across this issue while running mariadb server in VM Guest.
I believe this happens sometime when VDP is doing backup or machine is being migrated by DRS.
In my case, i've enable innodb per tables. So i've to clear lock from all files in subfolder.
In order to fix the issue, following command usually fix the issue.
systemctl stop mariadb cd /var/lib/mysql for i in `find . -name '*.ibd'`; do mv $i $i.bk; cp -a $i.bk $i ; rm $i.bk ; done systemctl start mariadb